<!doctype html>
<html class="no-js" lang="">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="x-ua-compatible" content="ie=edge">
        <title>angular-oauth2-oidc</title>
        <meta name="description" content="">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
	      <link rel="stylesheet" href="../styles/style.css">
    </head>
    <body>

        <div class="navbar navbar-default navbar-fixed-top visible-xs">
            <a href="../" class="navbar-brand">angular-oauth2-oidc</a>
            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
        </div>

        <div class="xs-menu menu" id="mobile-menu">
                <div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div>            <compodoc-menu></compodoc-menu>
        </div>

        <div class="container-fluid main">
           <div class="row main">
               <div class="hidden-xs menu">
                   <compodoc-menu mode="normal"></compodoc-menu>
               </div>
               <!-- START CONTENT -->
               <div class="content injectable">
                   <div class="content-data">







<ol class="breadcrumb">
  <li>Injectables</li>
  <li>OAuthService</li>
</ol>

<ul class="nav nav-tabs" role="tablist">
        <li class="active">
            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
        </li>
        <li >
            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
        </li>
</ul>

<div class="tab-content">
    <div class="tab-pane fade active in" id="c-info">
        <p class="comment">
            <h3>File</h3>
        </p>
        <p class="comment">
            <code>projects/lib/src/oauth-service.ts</code>
        </p>

            <p class="comment">
                <h3>Description</h3>
            </p>
            <p class="comment">
                <p>Service for logging in and logging out with
OIDC and OAuth2. Supports implicit flow and
password flow.</p>

            </p>

            <p class="comment">
                <h3>Extends</h3>
            </p>
            <p class="comment">
                        <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
            </p>


            <section>
    <h3 id="index">Index</h3>
    <table class="table table-sm table-bordered index-table">
        <tbody>
                <tr>
                    <td class="col-md-4">
                        <h6><b>Properties</b></h6>
                    </td>
                </tr>
                <tr>
                    <td class="col-md-4">
                        <ul class="index-list">
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#_storage">_storage</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#accessTokenTimeoutSubscription">accessTokenTimeoutSubscription</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#discoveryDocumentLoadedSubject">discoveryDocumentLoadedSubject</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#events">events</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#eventsSubject">eventsSubject</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#grantTypesSupported">grantTypesSupported</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#idTokenTimeoutSubscription">idTokenTimeoutSubscription</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#inImplicitFlow">inImplicitFlow</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#jwksUri">jwksUri</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#saveNoncesInLocalStorage">saveNoncesInLocalStorage</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#sessionCheckEventListener">sessionCheckEventListener</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#sessionCheckTimer">sessionCheckTimer</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#silentRefreshPostMessageEventListener">silentRefreshPostMessageEventListener</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#silentRefreshSubject">silentRefreshSubject</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#state">state</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#tokenReceivedSubscription">tokenReceivedSubscription</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#tokenValidationHandler">tokenValidationHandler</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#clearHashAfterLogin">clearHashAfterLogin</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#clientId">clientId</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#clockSkewInSec">clockSkewInSec</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#customQueryParams">customQueryParams</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#customTokenParameters">customTokenParameters</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#disableAtHashCheck">disableAtHashCheck</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#disablePKCE">disablePKCE</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#dummyClientSecret">dummyClientSecret</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#fallbackAccessTokenExpirationTimeInSec">fallbackAccessTokenExpirationTimeInSec</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#issuer">issuer</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#jwks">jwks</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#loginUrl">loginUrl</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#logoutUrl">logoutUrl</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#nonceStateSeparator">nonceStateSeparator</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#oidc">oidc</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#openUri">openUri</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#options">options</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#postLogoutRedirectUri">postLogoutRedirectUri</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#redirectUri">redirectUri</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#requestAccessToken">requestAccessToken</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#requireHttps">requireHttps</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#resource">resource</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#responseType">responseType</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#revocationEndpoint">revocationEndpoint</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#rngUrl">rngUrl</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#scope">scope</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#sessionCheckIFrameName">sessionCheckIFrameName</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#sessionCheckIFrameUrl">sessionCheckIFrameUrl</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#sessionCheckIntervall">sessionCheckIntervall</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#sessionChecksEnabled">sessionChecksEnabled</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#showDebugInformation">showDebugInformation</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#silentRefreshIFrameName">silentRefreshIFrameName</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#silentRefreshMessagePrefix">silentRefreshMessagePrefix</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#silentRefreshRedirectUri">silentRefreshRedirectUri</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#silentRefreshShowIFrame">silentRefreshShowIFrame</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#silentRefreshTimeout">silentRefreshTimeout</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#skipIssuerCheck">skipIssuerCheck</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#skipSubjectCheck">skipSubjectCheck</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#strictDiscoveryDocumentValidation">strictDiscoveryDocumentValidation</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#timeoutFactor">timeoutFactor</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#tokenEndpoint">tokenEndpoint</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#useHttpBasicAuth">useHttpBasicAuth</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#useIdTokenHintForSilentRefresh">useIdTokenHintForSilentRefresh</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#userinfoEndpoint">userinfoEndpoint</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#useSilentRefresh">useSilentRefresh</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                    <span class="modifier">Optional</span>
                                <a href="#waitForTokenInMsec">waitForTokenInMsec</a>
                            </li>
                        </ul>
                    </td>
                </tr>

                <tr>
                    <td class="col-md-4">
                        <h6><b>Methods</b></h6>
                    </td>
                </tr>
                <tr>
                    <td class="col-md-4">
                        <ul class="index-list">
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#assertUrlNotNullAndCorrectProtocol">assertUrlNotNullAndCorrectProtocol</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#authorizationHeader">authorizationHeader</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#calcTimeout">calcTimeout</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#calculatePopupFeatures">calculatePopupFeatures</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#callOnTokenReceivedIfExists">callOnTokenReceivedIfExists</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#canPerformSessionCheck">canPerformSessionCheck</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                    <span class="modifier">Async</span>
                                <a href="#checkAtHash">checkAtHash</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#checkSession">checkSession</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#checkSignature">checkSignature</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#clearAccessTokenTimer">clearAccessTokenTimer</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#clearIdTokenTimer">clearIdTokenTimer</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#configChanged">configChanged</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#configure">configure</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                    <span class="modifier">Async</span>
                                <a href="#createChallangeVerifierPairForPKCE">createChallangeVerifierPairForPKCE</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                    <span class="modifier">Async</span>
                                <a href="#createLoginUrl">createLoginUrl</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#createNonce">createNonce</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#debug">debug</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#fetchTokenUsingPasswordFlow">fetchTokenUsingPasswordFlow</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#fetchTokenUsingPasswordFlowAndLoadUserProfile">fetchTokenUsingPasswordFlowAndLoadUserProfile</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#getAccessToken">getAccessToken</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#getAccessTokenExpiration">getAccessTokenExpiration</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#getAccessTokenStoredAt">getAccessTokenStoredAt</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#getCustomTokenResponseProperty">getCustomTokenResponseProperty</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#getGrantedScopes">getGrantedScopes</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#getIdentityClaims">getIdentityClaims</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#getIdToken">getIdToken</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#getIdTokenExpiration">getIdTokenExpiration</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#getIdTokenStoredAt">getIdTokenStoredAt</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#getRefreshToken">getRefreshToken</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#getSessionState">getSessionState</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#handleLoginError">handleLoginError</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#handleSessionChange">handleSessionChange</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#handleSessionError">handleSessionError</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#handleSessionUnchanged">handleSessionUnchanged</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#hasValidAccessToken">hasValidAccessToken</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#hasValidIdToken">hasValidIdToken</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#initCodeFlow">initCodeFlow</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#initImplicitFlow">initImplicitFlow</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#initImplicitFlowInPopup">initImplicitFlowInPopup</a>
                            </li>
                            <li>
                                <a href="#initImplicitFlowInternal">initImplicitFlowInternal</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#initLoginFlow">initLoginFlow</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#initLoginFlowInPopup">initLoginFlowInPopup</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#initSessionCheck">initSessionCheck</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#loadDiscoveryDocument">loadDiscoveryDocument</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#loadDiscoveryDocumentAndLogin">loadDiscoveryDocumentAndLogin</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#loadDiscoveryDocumentAndTryLogin">loadDiscoveryDocumentAndTryLogin</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#loadJwks">loadJwks</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#loadUserProfile">loadUserProfile</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#logOut">logOut</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#logOut">logOut</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#logOut">logOut</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#logOut">logOut</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#logOut">logOut</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#padBase64">padBase64</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#processMessageEventMessage">processMessageEventMessage</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#refreshInternal">refreshInternal</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#refreshToken">refreshToken</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#removeSessionCheckEventListener">removeSessionCheckEventListener</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#removeSilentRefreshEventListener">removeSilentRefreshEventListener</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#resetImplicitFlow">resetImplicitFlow</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#restartRefreshTimerIfStillLoggedIn">restartRefreshTimerIfStillLoggedIn</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#restartSessionChecksIfStillLoggedIn">restartSessionChecksIfStillLoggedIn</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#revokeTokenAndLogout">revokeTokenAndLogout</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#setupAccessTokenTimer">setupAccessTokenTimer</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#setupAutomaticSilentRefresh">setupAutomaticSilentRefresh</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#setupExpirationTimers">setupExpirationTimers</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#setupIdTokenTimer">setupIdTokenTimer</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#setupRefreshTimer">setupRefreshTimer</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#setupSessionCheck">setupSessionCheck</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#setupSessionCheckEventListener">setupSessionCheckEventListener</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#setupSilentRefreshEventListener">setupSilentRefreshEventListener</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#silentRefresh">silentRefresh</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#startSessionCheckTimer">startSessionCheckTimer</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#stopAutomaticRefresh">stopAutomaticRefresh</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#stopSessionCheckTimer">stopSessionCheckTimer</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#storeAccessTokenResponse">storeAccessTokenResponse</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#storeIdToken">storeIdToken</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#storeSessionState">storeSessionState</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#tryLogin">tryLogin</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#tryLoginCodeFlow">tryLoginCodeFlow</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#tryLoginImplicitFlow">tryLoginImplicitFlow</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#validateDiscoveryDocument">validateDiscoveryDocument</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#validateNonce">validateNonce</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#validateUrlAgainstIssuer">validateUrlAgainstIssuer</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#validateUrlForHttps">validateUrlForHttps</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#validateUrlFromDiscoveryDocument">validateUrlFromDiscoveryDocument</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#waitForSilentRefreshAfterSessionChange">waitForSilentRefreshAfterSessionChange</a>
                            </li>
                        </ul>
                    </td>
                </tr>





        </tbody>
    </table>
</section>

            <section>
    <h3 id="constructor">Constructor</h3>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
<code>constructor(ngZone: <a href="https://angular.io/api/core/NgZone" target="_blank">NgZone</a>, http: <a href="https://angular.io/api/common/http/HttpClient" target="_blank">HttpClient</a>, storage: <a href="../classes/OAuthStorage.html">OAuthStorage</a>, tokenValidationHandler: <a href="../classes/ValidationHandler.html">ValidationHandler</a>, config: <a href="../classes/AuthConfig.html">AuthConfig</a>, urlHelper: <a href="../injectables/UrlHelperService.html">UrlHelperService</a>, logger: <a href="../classes/OAuthLogger.html">OAuthLogger</a>, crypto: <a href="../classes/HashHandler.html">HashHandler</a>, document: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
                    </td>
                </tr>
                        <tr>
                            <td class="col-md-4">
                                <div class="io-line">Defined in <a href="" data-line="112" class="link-to-prism">projects/lib/src/oauth-service.ts:112</a></div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                            <div>
                                    <b>Parameters :</b>
                                    <table class="params">
                                        <thead>
                                            <tr>
                                                <td>Name</td>
                                                    <td>Type</td>
                                                <td>Optional</td>
                                            </tr>
                                        </thead>
                                        <tbody>
                                                <tr>
                                                        <td>ngZone</td>
                                                  
                                                        <td>
                                                                        <code><a href="https://angular.io/api/core/NgZone" target="_blank" >NgZone</a></code>
                                                        </td>
                                                  
                                                    <td>
                                                            No
                                                    </td>
                                                    
                                                </tr>
                                                <tr>
                                                        <td>http</td>
                                                  
                                                        <td>
                                                                        <code><a href="https://angular.io/api/common/http/HttpClient" target="_blank" >HttpClient</a></code>
                                                        </td>
                                                  
                                                    <td>
                                                            No
                                                    </td>
                                                    
                                                </tr>
                                                <tr>
                                                        <td>storage</td>
                                                  
                                                        <td>
                                                                        <code><a href="../classes/OAuthStorage.html" target="_self" >OAuthStorage</a></code>
                                                        </td>
                                                  
                                                    <td>
                                                            No
                                                    </td>
                                                    
                                                </tr>
                                                <tr>
                                                        <td>tokenValidationHandler</td>
                                                  
                                                        <td>
                                                                        <code><a href="../classes/ValidationHandler.html" target="_self" >ValidationHandler</a></code>
                                                        </td>
                                                  
                                                    <td>
                                                            No
                                                    </td>
                                                    
                                                </tr>
                                                <tr>
                                                        <td>config</td>
                                                  
                                                        <td>
                                                                        <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
                                                        </td>
                                                  
                                                    <td>
                                                            No
                                                    </td>
                                                    
                                                </tr>
                                                <tr>
                                                        <td>urlHelper</td>
                                                  
                                                        <td>
                                                                        <code><a href="../injectables/UrlHelperService.html" target="_self" >UrlHelperService</a></code>
                                                        </td>
                                                  
                                                    <td>
                                                            No
                                                    </td>
                                                    
                                                </tr>
                                                <tr>
                                                        <td>logger</td>
                                                  
                                                        <td>
                                                                        <code><a href="../classes/OAuthLogger.html" target="_self" >OAuthLogger</a></code>
                                                        </td>
                                                  
                                                    <td>
                                                            No
                                                    </td>
                                                    
                                                </tr>
                                                <tr>
                                                        <td>crypto</td>
                                                  
                                                        <td>
                                                                        <code><a href="../classes/HashHandler.html" target="_self" >HashHandler</a></code>
                                                        </td>
                                                  
                                                    <td>
                                                            No
                                                    </td>
                                                    
                                                </tr>
                                                <tr>
                                                        <td>document</td>
                                                  
                                                        <td>
                                                                        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
                                                        </td>
                                                  
                                                    <td>
                                                            No
                                                    </td>
                                                    
                                                </tr>
                                        </tbody>
                                    </table>
                            </div>
                    </td>
                </tr>
            </tbody>
        </table>
</section>

            <section>
    
    <h3 id="methods">
        Methods
    </h3>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="assertUrlNotNullAndCorrectProtocol"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            assertUrlNotNullAndCorrectProtocol
                        </b>
                        <a href="#assertUrlNotNullAndCorrectProtocol"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>assertUrlNotNullAndCorrectProtocol(url: string | undefined, description: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="350"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:350</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>url</td>
                                    <td>
                                            <code>string | undefined</code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                                <tr>
                                    <td>description</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="authorizationHeader"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            authorizationHeader
                        </b>
                        <a href="#authorizationHeader"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>authorizationHeader()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="2301"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:2301</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Returns the auth-header that can be used
to transmit the access_token to a service</p>
</div>

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="calcTimeout"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            calcTimeout
                        </b>
                        <a href="#calcTimeout"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>calcTimeout(storedAt: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>, expiration: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="465"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:465</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>storedAt</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                                <tr>
                                    <td>expiration</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="calculatePopupFeatures"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            calculatePopupFeatures
                        </b>
                        <a href="#calculatePopupFeatures"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>calculatePopupFeatures(options: literal type)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1136"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1136</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>options</td>
                                    <td>
                                            <code>literal type</code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="callOnTokenReceivedIfExists"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            callOnTokenReceivedIfExists
                        </b>
                        <a href="#callOnTokenReceivedIfExists"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>callOnTokenReceivedIfExists(options: <a href="../classes/LoginOptions.html">LoginOptions</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1545"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1545</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>options</td>
                                    <td>
                                                <code><a href="../classes/LoginOptions.html" target="_self" >LoginOptions</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="canPerformSessionCheck"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            canPerformSessionCheck
                        </b>
                        <a href="#canPerformSessionCheck"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>canPerformSessionCheck()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1169"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1169</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="checkAtHash"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            <span class="modifier">Async</span>
                            checkAtHash
                        </b>
                        <a href="#checkAtHash"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>checkAtHash(params: <a href="../interfaces/ValidationParams.html">ValidationParams</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="2494"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:2494</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>params</td>
                                    <td>
                                                <code><a href="../interfaces/ValidationParams.html" target="_self" >ValidationParams</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>    <code>Promise&lt;boolean&gt;</code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="checkSession"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            checkSession
                        </b>
                        <a href="#checkSession"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>checkSession()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1345"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1345</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="checkSignature"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            checkSignature
                        </b>
                        <a href="#checkSignature"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>checkSignature(params: <a href="../interfaces/ValidationParams.html">ValidationParams</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="2504"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:2504</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>params</td>
                                    <td>
                                                <code><a href="../interfaces/ValidationParams.html" target="_self" >ValidationParams</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>    <code>Promise&lt;any&gt;</code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="clearAccessTokenTimer"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            clearAccessTokenTimer
                        </b>
                        <a href="#clearAccessTokenTimer"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>clearAccessTokenTimer()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="453"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:453</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="clearIdTokenTimer"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            clearIdTokenTimer
                        </b>
                        <a href="#clearIdTokenTimer"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>clearIdTokenTimer()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="459"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:459</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="configChanged"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            configChanged
                        </b>
                        <a href="#configChanged"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>configChanged()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="191"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:191</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="configure"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            configure
                        </b>
                        <a href="#configure"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>configure(config: <a href="../classes/AuthConfig.html">AuthConfig</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="177"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:177</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Use this method to configure the service</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Description</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>config</td>
                                    <td>
                                                <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                    <td>
                                        <p>the configuration</p>

                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="createChallangeVerifierPairForPKCE"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            <span class="modifier">Async</span>
                            createChallangeVerifierPairForPKCE
                        </b>
                        <a href="#createChallangeVerifierPairForPKCE"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>createChallangeVerifierPairForPKCE()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="2555"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:2555</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>    <code>Promise&lt;&gt;</code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="createLoginUrl"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            <span class="modifier">Async</span>
                            createLoginUrl
                        </b>
                        <a href="#createLoginUrl"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>createLoginUrl(state: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, loginHint: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, customRedirectUri: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, noPrompt, params: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank">object</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1367"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1367</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Default value</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>state</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>&#x27;&#x27;</code>
                                    </td>

                                </tr>
                                <tr>
                                    <td>loginHint</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>&#x27;&#x27;</code>
                                    </td>

                                </tr>
                                <tr>
                                    <td>customRedirectUri</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>&#x27;&#x27;</code>
                                    </td>

                                </tr>
                                <tr>
                                    <td>noPrompt</td>
                                    <td>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>false</code>
                                    </td>

                                </tr>
                                <tr>
                                    <td>params</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>{}</code>
                                    </td>

                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>    <code>Promise&lt;string&gt;</code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="createNonce"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            createNonce
                        </b>
                        <a href="#createNonce"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>createNonce()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="2452"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:2452</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>    <code>Promise&lt;string&gt;</code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="debug"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            debug
                        </b>
                        <a href="#debug"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>debug(...args: any[])</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="301"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:301</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>args</td>
                                    <td>
                                            <code>any[]</code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="fetchTokenUsingPasswordFlow"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            fetchTokenUsingPasswordFlow
                        </b>
                        <a href="#fetchTokenUsingPasswordFlow"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>fetchTokenUsingPasswordFlow(userName: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, password: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, headers: <a href="https://angular.io/api/common/http/HttpHeaders" target="_blank">HttpHeaders</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="775"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:775</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Uses password flow to exchange userName and password for an access_token.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Default value</td>
                                    <td>Description</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>userName</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                    </td>

                                    <td>
                                    </td>
                                </tr>
                                <tr>
                                    <td>password</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                    </td>

                                    <td>
                                    </td>
                                </tr>
                                <tr>
                                    <td>headers</td>
                                    <td>
                                                <code><a href="https://angular.io/api/common/http/HttpHeaders" target="_blank" >HttpHeaders</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>new HttpHeaders()</code>
                                    </td>

                                    <td>
                                        <p>Optional additional http-headers.</p>

                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="../interfaces/TokenResponse.html" target="_self" >Promise&lt;TokenResponse&gt;</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="fetchTokenUsingPasswordFlowAndLoadUserProfile"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            fetchTokenUsingPasswordFlowAndLoadUserProfile
                        </b>
                        <a href="#fetchTokenUsingPasswordFlowAndLoadUserProfile"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>fetchTokenUsingPasswordFlowAndLoadUserProfile(userName: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, password: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, headers: <a href="https://angular.io/api/common/http/HttpHeaders" target="_blank">HttpHeaders</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="693"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:693</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Uses password flow to exchange userName and password for an
access_token. After receiving the access_token, this method
uses it to query the userinfo endpoint in order to get information
about the user in question.</p>
<p>When using this, make sure that the property oidc is set to false.
Otherwise stricter validations take place that make this operation
fail.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Default value</td>
                                    <td>Description</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>userName</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                    </td>

                                    <td>
                                    </td>
                                </tr>
                                <tr>
                                    <td>password</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                    </td>

                                    <td>
                                    </td>
                                </tr>
                                <tr>
                                    <td>headers</td>
                                    <td>
                                                <code><a href="https://angular.io/api/common/http/HttpHeaders" target="_blank" >HttpHeaders</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>new HttpHeaders()</code>
                                    </td>

                                    <td>
                                        <p>Optional additional http-headers.</p>

                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="../interfaces/UserInfo.html" target="_self" >Promise&lt;UserInfo&gt;</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="getAccessToken"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            getAccessToken
                        </b>
                        <a href="#getAccessToken"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>getAccessToken()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="2212"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:2212</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Returns the current access_token.</p>
</div>

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="getAccessTokenExpiration"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            getAccessTokenExpiration
                        </b>
                        <a href="#getAccessTokenExpiration"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>getAccessTokenExpiration()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="2224"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:2224</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Returns the expiration date of the access_token
as milliseconds since 1970.</p>
</div>

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="getAccessTokenStoredAt"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            getAccessTokenStoredAt
                        </b>
                        <a href="#getAccessTokenStoredAt"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>getAccessTokenStoredAt()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="2231"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:2231</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="getCustomTokenResponseProperty"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            getCustomTokenResponseProperty
                        </b>
                        <a href="#getCustomTokenResponseProperty"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>getCustomTokenResponseProperty(requestedProperty: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="2288"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:2288</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Retrieve a saved custom property of the TokenReponse object. Only if predefined in authconfig.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>requestedProperty</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="getGrantedScopes"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            getGrantedScopes
                        </b>
                        <a href="#getGrantedScopes"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>getGrantedScopes()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="2187"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:2187</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Returns the granted scopes from the server.</p>
</div>

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="getIdentityClaims"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            getIdentityClaims
                        </b>
                        <a href="#getIdentityClaims"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>getIdentityClaims()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="2176"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:2176</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Returns the received claims about the user.</p>
</div>

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="getIdToken"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            getIdToken
                        </b>
                        <a href="#getIdToken"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>getIdToken()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="2198"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:2198</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Returns the current id_token.</p>
</div>

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="getIdTokenExpiration"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            getIdTokenExpiration
                        </b>
                        <a href="#getIdTokenExpiration"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>getIdTokenExpiration()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="2243"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:2243</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Returns the expiration date of the id_token
as milliseconds since 1970.</p>
</div>

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="getIdTokenStoredAt"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            getIdTokenStoredAt
                        </b>
                        <a href="#getIdTokenStoredAt"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>getIdTokenStoredAt()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="2235"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:2235</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="getRefreshToken"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            getRefreshToken
                        </b>
                        <a href="#getRefreshToken"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>getRefreshToken()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="2216"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:2216</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="getSessionState"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            getSessionState
                        </b>
                        <a href="#getSessionState"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>getSessionState()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1983"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1983</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="handleLoginError"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            handleLoginError
                        </b>
                        <a href="#handleLoginError"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>handleLoginError(options: <a href="../classes/LoginOptions.html">LoginOptions</a>, parts: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank">object</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1987"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1987</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>options</td>
                                    <td>
                                                <code><a href="../classes/LoginOptions.html" target="_self" >LoginOptions</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                                <tr>
                                    <td>parts</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="handleSessionChange"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            handleSessionChange
                        </b>
                        <a href="#handleSessionChange"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>handleSessionChange()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1246"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1246</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="handleSessionError"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            handleSessionError
                        </b>
                        <a href="#handleSessionError"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>handleSessionError()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1291"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1291</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="handleSessionUnchanged"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            handleSessionUnchanged
                        </b>
                        <a href="#handleSessionUnchanged"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>handleSessionUnchanged()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1242"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1242</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="hasValidAccessToken"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            hasValidAccessToken
                        </b>
                        <a href="#hasValidAccessToken"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>hasValidAccessToken()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="2254"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:2254</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Checkes, whether there is a valid access_token.</p>
</div>

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="hasValidIdToken"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            hasValidIdToken
                        </b>
                        <a href="#hasValidIdToken"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>hasValidIdToken()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="2271"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:2271</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Checks whether there is a valid id_token.</p>
</div>

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="initCodeFlow"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            initCodeFlow
                        </b>
                        <a href="#initCodeFlow"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>initCodeFlow(additionalState: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, params: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank">object</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="2530"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:2530</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Starts the authorization code flow and redirects to user to
the auth servers login url.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Default value</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>additionalState</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>&#x27;&#x27;</code>
                                    </td>

                                </tr>
                                <tr>
                                    <td>params</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>{}</code>
                                    </td>

                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="initImplicitFlow"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            initImplicitFlow
                        </b>
                        <a href="#initImplicitFlow"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>initImplicitFlow(additionalState: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, params: string | object)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1523"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1523</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Starts the implicit flow and redirects to user to
the auth servers&#39; login url.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Default value</td>
                                    <td>Description</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>additionalState</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>&#x27;&#x27;</code>
                                    </td>

                                    <td>
                                        <p>Optional state that is passed around.
You&#39;ll find this state in the property <code>state</code> after <code>tryLogin</code> logged in the user.</p>

                                    </td>
                                </tr>
                                <tr>
                                    <td>params</td>
                                    <td>
                                            <code>string | object</code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>&#x27;&#x27;</code>
                                    </td>

                                    <td>
                                        <p>Hash with additional parameter. If it is a string, it is used for the
parameter loginHint (for the sake of compatibility with former versions)</p>

                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="initImplicitFlowInPopup"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            initImplicitFlowInPopup
                        </b>
                        <a href="#initImplicitFlowInPopup"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>initImplicitFlowInPopup(options?: literal type)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1055"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1055</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>This method exists for backwards compatibility.
<a href="../injectables/OAuthService.html#initLoginFlowInPopup">OAuthService</a> handles both code
and implicit flows.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>options</td>
                                    <td>
                                            <code>literal type</code>
                                    </td>

                                    <td>
                                        Yes
                                    </td>


                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="initImplicitFlowInternal"></a>
                    <span class="name">
                        <b>
                            initImplicitFlowInternal
                        </b>
                        <a href="#initImplicitFlowInternal"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>initImplicitFlowInternal(additionalState: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, params: string | object)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1481"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1481</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Default value</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>additionalState</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>&#x27;&#x27;</code>
                                    </td>

                                </tr>
                                <tr>
                                    <td>params</td>
                                    <td>
                                            <code>string | object</code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>&#x27;&#x27;</code>
                                    </td>

                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="initLoginFlow"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            initLoginFlow
                        </b>
                        <a href="#initLoginFlow"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>initLoginFlow(additionalState: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, params: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank">object</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="2518"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:2518</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Start the implicit flow or the code flow,
depending on your configuration.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Default value</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>additionalState</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>&#x27;&#x27;</code>
                                    </td>

                                </tr>
                                <tr>
                                    <td>params</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>{}</code>
                                    </td>

                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="initLoginFlowInPopup"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            initLoginFlowInPopup
                        </b>
                        <a href="#initLoginFlowInPopup"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>initLoginFlowInPopup(options?: literal type)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1062"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1062</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>options</td>
                                    <td>
                                            <code>literal type</code>
                                    </td>

                                    <td>
                                        Yes
                                    </td>


                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="initSessionCheck"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            initSessionCheck
                        </b>
                        <a href="#initSessionCheck"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>initSessionCheck()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1303"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1303</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="loadDiscoveryDocument"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            loadDiscoveryDocument
                        </b>
                        <a href="#loadDiscoveryDocument"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>loadDiscoveryDocument(fullUrl: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="498"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:498</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Loads the discovery document to configure most
properties of this service. The url of the discovery
document is infered from the issuer&#39;s url according
to the OpenId Connect spec. To use another url you
can pass it to to optional parameter fullUrl.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Default value</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>fullUrl</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>null</code>
                                    </td>

                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="../classes/OAuthSuccessEvent.html" target="_self" >Promise&lt;OAuthSuccessEvent&gt;</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="loadDiscoveryDocumentAndLogin"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            loadDiscoveryDocumentAndLogin
                        </b>
                        <a href="#loadDiscoveryDocumentAndLogin"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>loadDiscoveryDocumentAndLogin(options)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="286"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:286</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Convenience method that first calls <code>loadDiscoveryDocumentAndTryLogin(...)</code>
and if then chains to <code>initLoginFlow()</code>, but only if there is no valid
IdToken or no valid AccessToken.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Optional</td>
                                    <td>Default value</td>
                                    <td>Description</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>options</td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>null</code>
                                    </td>

                                    <td>
                                        <p>LoginOptions to pass through to <code>tryLogin(...)</code></p>

                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>    <code>Promise&lt;boolean&gt;</code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="loadDiscoveryDocumentAndTryLogin"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            loadDiscoveryDocumentAndTryLogin
                        </b>
                        <a href="#loadDiscoveryDocumentAndTryLogin"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>loadDiscoveryDocumentAndTryLogin(options: <a href="../classes/LoginOptions.html">LoginOptions</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="271"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:271</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Convenience method that first calls <code>loadDiscoveryDocument(...)</code> and
directly chains using the <code>then(...)</code> part of the promise to call
the <code>tryLogin(...)</code> method.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Default value</td>
                                    <td>Description</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>options</td>
                                    <td>
                                                <code><a href="../classes/LoginOptions.html" target="_self" >LoginOptions</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>null</code>
                                    </td>

                                    <td>
                                        <p>LoginOptions to pass through to <code>tryLogin(...)</code></p>

                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>    <code>Promise&lt;boolean&gt;</code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="loadJwks"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            loadJwks
                        </b>
                        <a href="#loadJwks"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>loadJwks()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="580"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:580</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>    <code>Promise&lt;object&gt;</code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="loadUserProfile"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            loadUserProfile
                        </b>
                        <a href="#loadUserProfile"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>loadUserProfile()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="711"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:711</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Loads the user profile by accessing the user info endpoint defined by OpenId Connect.</p>
<p>When using this with OAuth2 password flow, make sure that the property oidc is set to false.
Otherwise stricter validations take place that make this operation fail.</p>
</div>

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="../interfaces/UserInfo.html" target="_self" >Promise&lt;UserInfo&gt;</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="logOut"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            logOut
                        </b>
                        <a href="#logOut"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>logOut()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="2312"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:2312</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Removes all tokens and logs the user out.
If a logout url is configured, the user is
redirected to it with optional state parameter.</p>
</div>

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="logOut"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            logOut
                        </b>
                        <a href="#logOut"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>logOut(customParameters: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank">object</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="2313"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:2313</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>customParameters</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="logOut"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            logOut
                        </b>
                        <a href="#logOut"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>logOut(noRedirectToLogoutUrl: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank">boolean</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="2314"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:2314</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>noRedirectToLogoutUrl</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="logOut"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            logOut
                        </b>
                        <a href="#logOut"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>logOut(noRedirectToLogoutUrl: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank">boolean</a>, state: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="2315"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:2315</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>noRedirectToLogoutUrl</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                                <tr>
                                    <td>state</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="logOut"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            logOut
                        </b>
                        <a href="#logOut"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>logOut(customParameters: boolean | object, state: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="2316"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:2316</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Default value</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>customParameters</td>
                                    <td>
                                            <code>boolean | object</code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>{}</code>
                                    </td>

                                </tr>
                                <tr>
                                    <td>state</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>&#x27;&#x27;</code>
                                    </td>

                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="padBase64"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            padBase64
                        </b>
                        <a href="#padBase64"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>padBase64(base64data)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="2202"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:2202</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Optional</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>base64data</td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="processMessageEventMessage"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            processMessageEventMessage
                        </b>
                        <a href="#processMessageEventMessage"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>processMessageEventMessage(e: MessageEvent)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1149"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1149</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>e</td>
                                    <td>
                                            <code>MessageEvent</code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="refreshInternal"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            refreshInternal
                        </b>
                        <a href="#refreshInternal"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>refreshInternal(params, noPrompt)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="253"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:253</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Optional</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>params</td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                                <tr>
                                    <td>noPrompt</td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="../interfaces/TokenResponse.html" target="_self" >Promise&lt;TokenResponse | OAuthEvent&gt;</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="refreshToken"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            refreshToken
                        </b>
                        <a href="#refreshToken"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>refreshToken()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="855"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:855</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Refreshes the token using a refresh_token.
This does not work for implicit flow, b/c
there is no refresh_token in this flow.
A solution for this is provided by the
method silentRefresh.</p>
</div>

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="../interfaces/TokenResponse.html" target="_self" >Promise&lt;TokenResponse&gt;</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="removeSessionCheckEventListener"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            removeSessionCheckEventListener
                        </b>
                        <a href="#removeSessionCheckEventListener"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>removeSessionCheckEventListener()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1296"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1296</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="removeSilentRefreshEventListener"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            removeSilentRefreshEventListener
                        </b>
                        <a href="#removeSilentRefreshEventListener"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>removeSilentRefreshEventListener()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="938"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:938</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="resetImplicitFlow"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            resetImplicitFlow
                        </b>
                        <a href="#resetImplicitFlow"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>resetImplicitFlow()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1541"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1541</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Reset current implicit flow</p>
</div>

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="restartRefreshTimerIfStillLoggedIn"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            restartRefreshTimerIfStillLoggedIn
                        </b>
                        <a href="#restartRefreshTimerIfStillLoggedIn"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>restartRefreshTimerIfStillLoggedIn()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="201"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:201</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="restartSessionChecksIfStillLoggedIn"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            restartSessionChecksIfStillLoggedIn
                        </b>
                        <a href="#restartSessionChecksIfStillLoggedIn"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>restartSessionChecksIfStillLoggedIn()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="195"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:195</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="revokeTokenAndLogout"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            revokeTokenAndLogout
                        </b>
                        <a href="#revokeTokenAndLogout"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>revokeTokenAndLogout(customParameters: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank">object</a>, ignoreCorsIssues)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="2594"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:2594</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Revokes the auth token to secure the vulnarability
of the token issued allowing the authorization server to clean
up any security credentials associated with the authorization</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Default value</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>customParameters</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>{}</code>
                                    </td>

                                </tr>
                                <tr>
                                    <td>ignoreCorsIssues</td>
                                    <td>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>false</code>
                                    </td>

                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>    <code>Promise&lt;any&gt;</code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="setupAccessTokenTimer"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            setupAccessTokenTimer
                        </b>
                        <a href="#setupAccessTokenTimer"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>setupAccessTokenTimer()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="408"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:408</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="setupAutomaticSilentRefresh"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            setupAutomaticSilentRefresh
                        </b>
                        <a href="#setupAutomaticSilentRefresh"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>setupAutomaticSilentRefresh(params: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank">object</a>, listenTo?: "access_token" | "id_token" | "any", noPrompt)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="219"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:219</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Will setup up silent refreshing for when the token is
about to expire. When the user is logged out via this.logOut method, the
silent refreshing will pause and not refresh the tokens until the user is
logged back in via receiving a new token.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Default value</td>
                                    <td>Description</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>params</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>{}</code>
                                    </td>

                                    <td>
                                        <p>Additional parameter to pass</p>

                                    </td>
                                </tr>
                                <tr>
                                    <td>listenTo</td>
                                    <td>
                                            <code>&quot;access_token&quot; | &quot;id_token&quot; | &quot;any&quot;</code>
                                    </td>

                                    <td>
                                        Yes
                                    </td>

                                    <td>
                                    </td>

                                    <td>
                                        <p>Setup automatic refresh of a specific token type</p>

                                    </td>
                                </tr>
                                <tr>
                                    <td>noPrompt</td>
                                    <td>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>true</code>
                                    </td>

                                    <td>
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="setupExpirationTimers"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            setupExpirationTimers
                        </b>
                        <a href="#setupExpirationTimers"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>setupExpirationTimers()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="398"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:398</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="setupIdTokenTimer"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            setupIdTokenTimer
                        </b>
                        <a href="#setupIdTokenTimer"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>setupIdTokenTimer()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="426"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:426</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="setupRefreshTimer"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            setupRefreshTimer
                        </b>
                        <a href="#setupRefreshTimer"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>setupRefreshTimer()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="374"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:374</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="setupSessionCheck"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            setupSessionCheck
                        </b>
                        <a href="#setupSessionCheck"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>setupSessionCheck()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="205"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:205</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="setupSessionCheckEventListener"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            setupSessionCheckEventListener
                        </b>
                        <a href="#setupSessionCheckEventListener"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>setupSessionCheckEventListener()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1193"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1193</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="setupSilentRefreshEventListener"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            setupSilentRefreshEventListener
                        </b>
                        <a href="#setupSilentRefreshEventListener"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>setupSilentRefreshEventListener()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="948"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:948</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="silentRefresh"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            silentRefresh
                        </b>
                        <a href="#silentRefresh"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>silentRefresh(params: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank">object</a>, noPrompt)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="972"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:972</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Performs a silent refresh for implicit flow.
Use this method to get new tokens when/before
the existing tokens expire.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Default value</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>params</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>{}</code>
                                    </td>

                                </tr>
                                <tr>
                                    <td>noPrompt</td>
                                    <td>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>true</code>
                                    </td>

                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="../classes/OAuthEvent.html" target="_self" >Promise&lt;OAuthEvent&gt;</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="startSessionCheckTimer"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            startSessionCheckTimer
                        </b>
                        <a href="#startSessionCheckTimer"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>startSessionCheckTimer()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1328"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1328</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="stopAutomaticRefresh"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            stopAutomaticRefresh
                        </b>
                        <a href="#stopAutomaticRefresh"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>stopAutomaticRefresh()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="448"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:448</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Stops timers for automatic refresh.
To restart it, call setupAutomaticSilentRefresh again.</p>
</div>

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="stopSessionCheckTimer"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            stopSessionCheckTimer
                        </b>
                        <a href="#stopSessionCheckTimer"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>stopSessionCheckTimer()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1338"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1338</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="storeAccessTokenResponse"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            storeAccessTokenResponse
                        </b>
                        <a href="#storeAccessTokenResponse"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>storeAccessTokenResponse(accessToken: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, refreshToken: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, expiresIn: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>, grantedScopes: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" target="_blank">String</a>, customParameters?: Map<string | string>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1558"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1558</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>accessToken</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                                <tr>
                                    <td>refreshToken</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                                <tr>
                                    <td>expiresIn</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                                <tr>
                                    <td>grantedScopes</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" target="_blank" >String</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                                <tr>
                                    <td>customParameters</td>
                                    <td>
                                            <code>Map&lt;string | string&gt;</code>
                                    </td>

                                    <td>
                                        Yes
                                    </td>


                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="storeIdToken"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            storeIdToken
                        </b>
                        <a href="#storeIdToken"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>storeIdToken(idToken: <a href="../interfaces/ParsedIdToken.html">ParsedIdToken</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1972"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1972</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>idToken</td>
                                    <td>
                                                <code><a href="../interfaces/ParsedIdToken.html" target="_self" >ParsedIdToken</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="storeSessionState"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            storeSessionState
                        </b>
                        <a href="#storeSessionState"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>storeSessionState(sessionState: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1979"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1979</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>sessionState</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="tryLogin"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            tryLogin
                        </b>
                        <a href="#tryLogin"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>tryLogin(options: <a href="../classes/LoginOptions.html">LoginOptions</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1597"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1597</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Delegates to tryLoginImplicitFlow for the sake of competability</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Default value</td>
                                    <td>Description</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>options</td>
                                    <td>
                                                <code><a href="../classes/LoginOptions.html" target="_self" >LoginOptions</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>null</code>
                                    </td>

                                    <td>
                                        <p>Optional options.</p>

                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>    <code>Promise&lt;boolean&gt;</code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="tryLoginCodeFlow"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            tryLoginCodeFlow
                        </b>
                        <a href="#tryLoginCodeFlow"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>tryLoginCodeFlow(options: <a href="../classes/LoginOptions.html">LoginOptions</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1617"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1617</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Default value</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>options</td>
                                    <td>
                                                <code><a href="../classes/LoginOptions.html" target="_self" >LoginOptions</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>null</code>
                                    </td>

                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>    <code>Promise&lt;void&gt;</code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="tryLoginImplicitFlow"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Public</span>
                            tryLoginImplicitFlow
                        </b>
                        <a href="#tryLoginImplicitFlow"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>tryLoginImplicitFlow(options: <a href="../classes/LoginOptions.html">LoginOptions</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1819"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1819</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Checks whether there are tokens in the hash fragment
as a result of the implicit flow. These tokens are
parsed, validated and used to sign the user in to the
current client.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Default value</td>
                                    <td>Description</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>options</td>
                                    <td>
                                                <code><a href="../classes/LoginOptions.html" target="_self" >LoginOptions</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>null</code>
                                    </td>

                                    <td>
                                        <p>Optional options.</p>

                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>    <code>Promise&lt;boolean&gt;</code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="validateDiscoveryDocument"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            validateDiscoveryDocument
                        </b>
                        <a href="#validateDiscoveryDocument"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>validateDiscoveryDocument(doc: <a href="../interfaces/OidcDiscoveryDoc.html">OidcDiscoveryDoc</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="605"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:605</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>doc</td>
                                    <td>
                                                <code><a href="../interfaces/OidcDiscoveryDoc.html" target="_self" >OidcDiscoveryDoc</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="validateNonce"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            validateNonce
                        </b>
                        <a href="#validateNonce"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>validateNonce(nonceInState: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1952"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1952</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>nonceInState</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="validateUrlAgainstIssuer"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            validateUrlAgainstIssuer
                        </b>
                        <a href="#validateUrlAgainstIssuer"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>validateUrlAgainstIssuer(url: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="364"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:364</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>url</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="validateUrlForHttps"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            validateUrlForHttps
                        </b>
                        <a href="#validateUrlForHttps"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>validateUrlForHttps(url: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="328"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:328</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>url</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="validateUrlFromDiscoveryDocument"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            validateUrlFromDiscoveryDocument
                        </b>
                        <a href="#validateUrlFromDiscoveryDocument"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>validateUrlFromDiscoveryDocument(url: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="307"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:307</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>url</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>    <code>string[]</code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="waitForSilentRefreshAfterSessionChange"></a>
                    <span class="name">
                        <b>
                            <span class="modifier">Protected</span>
                            waitForSilentRefreshAfterSessionChange
                        </b>
                        <a href="#waitForSilentRefreshAfterSessionChange"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <span class="modifier-icon icon ion-ios-reset"></span>
                    <code>waitForSilentRefreshAfterSessionChange()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="1271"
                            class="link-to-prism">projects/lib/src/oauth-service.ts:1271</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
</section>
            <section>
    
        <h3 id="inputs">
            Properties
        </h3>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="_storage"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Protected</span>
                            _storage</b>
                            <a href="#_storage"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="../classes/OAuthStorage.html" target="_self" >OAuthStorage</a></code>

                        </td>
                    </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in <a href="" data-line="101" class="link-to-prism">projects/lib/src/oauth-service.ts:101</a></div>
                            </td>
                        </tr>


            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="accessTokenTimeoutSubscription"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Protected</span>
                            accessTokenTimeoutSubscription</b>
                            <a href="#accessTokenTimeoutSubscription"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>    <code>Subscription</code>

                        </td>
                    </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in <a href="" data-line="102" class="link-to-prism">projects/lib/src/oauth-service.ts:102</a></div>
                            </td>
                        </tr>


            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="discoveryDocumentLoadedSubject"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Protected</span>
                            discoveryDocumentLoadedSubject</b>
                            <a href="#discoveryDocumentLoadedSubject"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="../interfaces/OidcDiscoveryDoc.html" target="_self" >Subject&lt;OidcDiscoveryDoc&gt;</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>new Subject&lt;OidcDiscoveryDoc&gt;()</code>
                        </td>
                    </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in <a href="" data-line="96" class="link-to-prism">projects/lib/src/oauth-service.ts:96</a></div>
                            </td>
                        </tr>


            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="events"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                            events</b>
                            <a href="#events"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="../classes/OAuthEvent.html" target="_self" >Observable&lt;OAuthEvent&gt;</a></code>

                        </td>
                    </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in <a href="" data-line="87" class="link-to-prism">projects/lib/src/oauth-service.ts:87</a></div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Informs about events, like token_received or token_expires.
See the string enum EventType for a full list of event types.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="eventsSubject"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Protected</span>
                            eventsSubject</b>
                            <a href="#eventsSubject"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="../classes/OAuthEvent.html" target="_self" >Subject&lt;OAuthEvent&gt;</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>new Subject&lt;OAuthEvent&gt;()</code>
                        </td>
                    </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in <a href="" data-line="95" class="link-to-prism">projects/lib/src/oauth-service.ts:95</a></div>
                            </td>
                        </tr>


            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="grantTypesSupported"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Protected</span>
                            grantTypesSupported</b>
                            <a href="#grantTypesSupported"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>    <code>Array&lt;string&gt;</code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>[]</code>
                        </td>
                    </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in <a href="" data-line="100" class="link-to-prism">projects/lib/src/oauth-service.ts:100</a></div>
                            </td>
                        </tr>


            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="idTokenTimeoutSubscription"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Protected</span>
                            idTokenTimeoutSubscription</b>
                            <a href="#idTokenTimeoutSubscription"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>    <code>Subscription</code>

                        </td>
                    </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in <a href="" data-line="103" class="link-to-prism">projects/lib/src/oauth-service.ts:103</a></div>
                            </td>
                        </tr>


            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="inImplicitFlow"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Protected</span>
                            inImplicitFlow</b>
                            <a href="#inImplicitFlow"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>false</code>
                        </td>
                    </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in <a href="" data-line="109" class="link-to-prism">projects/lib/src/oauth-service.ts:109</a></div>
                            </td>
                        </tr>


            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="jwksUri"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Protected</span>
                            jwksUri</b>
                            <a href="#jwksUri"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                        </td>
                    </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in <a href="" data-line="106" class="link-to-prism">projects/lib/src/oauth-service.ts:106</a></div>
                            </td>
                        </tr>


            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="saveNoncesInLocalStorage"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Protected</span>
                            saveNoncesInLocalStorage</b>
                            <a href="#saveNoncesInLocalStorage"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>false</code>
                        </td>
                    </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in <a href="" data-line="111" class="link-to-prism">projects/lib/src/oauth-service.ts:111</a></div>
                            </td>
                        </tr>


            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="sessionCheckEventListener"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Protected</span>
                            sessionCheckEventListener</b>
                            <a href="#sessionCheckEventListener"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>    <code>EventListener</code>

                        </td>
                    </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in <a href="" data-line="105" class="link-to-prism">projects/lib/src/oauth-service.ts:105</a></div>
                            </td>
                        </tr>


            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="sessionCheckTimer"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Protected</span>
                            sessionCheckTimer</b>
                            <a href="#sessionCheckTimer"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>

                        </td>
                    </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in <a href="" data-line="107" class="link-to-prism">projects/lib/src/oauth-service.ts:107</a></div>
                            </td>
                        </tr>


            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="silentRefreshPostMessageEventListener"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Protected</span>
                            silentRefreshPostMessageEventListener</b>
                            <a href="#silentRefreshPostMessageEventListener"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>    <code>EventListener</code>

                        </td>
                    </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in <a href="" data-line="99" class="link-to-prism">projects/lib/src/oauth-service.ts:99</a></div>
                            </td>
                        </tr>


            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="silentRefreshSubject"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Protected</span>
                            silentRefreshSubject</b>
                            <a href="#silentRefreshSubject"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                        </td>
                    </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in <a href="" data-line="108" class="link-to-prism">projects/lib/src/oauth-service.ts:108</a></div>
                            </td>
                        </tr>


            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="state"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            state</b>
                            <a href="#state"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>&#x27;&#x27;</code>
                        </td>
                    </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in <a href="" data-line="93" class="link-to-prism">projects/lib/src/oauth-service.ts:93</a></div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>The received (passed around) state, when logging
in with implicit flow.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="tokenReceivedSubscription"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Protected</span>
                            tokenReceivedSubscription</b>
                            <a href="#tokenReceivedSubscription"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>    <code>Subscription</code>

                        </td>
                    </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in <a href="" data-line="104" class="link-to-prism">projects/lib/src/oauth-service.ts:104</a></div>
                            </td>
                        </tr>


            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="tokenValidationHandler"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                            tokenValidationHandler</b>
                            <a href="#tokenValidationHandler"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="../classes/ValidationHandler.html" target="_self" >ValidationHandler</a></code>

                        </td>
                    </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in <a href="" data-line="69" class="link-to-prism">projects/lib/src/oauth-service.ts:69</a></div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>The ValidationHandler used to validate received
id_tokens.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="clearHashAfterLogin"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            clearHashAfterLogin</b>
                            <a href="#clearHashAfterLogin"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>true</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:60</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Defines whether to clear the hash fragment after logging in.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="clientId"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            clientId</b>
                            <a href="#clientId"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>&#x27;&#x27;</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:5</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>The client&#39;s id as registered with the auth server</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="clockSkewInSec"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            clockSkewInSec</b>
                            <a href="#clockSkewInSec"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>

                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:232</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>The window of time (in seconds) to allow the current time to deviate when validating id_token&#39;s iat and exp values.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="customQueryParams"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            customQueryParams</b>
                            <a href="#customQueryParams"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>null</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:152</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Map with additional query parameter that are appended to
the request when initializing implicit flow.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="customTokenParameters"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            customTokenParameters</b>
                            <a href="#customTokenParameters"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>    <code>string[]</code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>[]</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:75</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Names of known parameters sent out in the TokenResponse. <a href="https://tools.ietf.org/html/rfc6749#section-5.1">https://tools.ietf.org/html/rfc6749#section-5.1</a></p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="disableAtHashCheck"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            disableAtHashCheck</b>
                            <a href="#disableAtHashCheck"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>false</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:193</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>This property has been introduced to disable at_hash checks
and is indented for Identity Provider that does not deliver
an at_hash EVEN THOUGH its recommended by the OIDC specs.
Of course, when disabling these checks the we are bypassing
a security check which means we are more vulnerable.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="disablePKCE"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            disablePKCE</b>
                            <a href="#disablePKCE"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>false</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:252</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Code Flow is by defauld used together with PKCI which is also higly recommented.
You can disbale it here by setting this flag to true.
<a href="https://tools.ietf.org/html/rfc7636#section-1.1">https://tools.ietf.org/html/rfc7636#section-1.1</a></p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="dummyClientSecret"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            dummyClientSecret</b>
                            <a href="#dummyClientSecret"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>null</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:125</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Some auth servers don&#39;t allow using password flow
w/o a client secret while the standards do not
demand for it. In this case, you can set a password
here. As this password is exposed to the public
it does not bring additional security and is therefore
as good as using no password.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="fallbackAccessTokenExpirationTimeInSec"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            fallbackAccessTokenExpirationTimeInSec</b>
                            <a href="#fallbackAccessTokenExpirationTimeInSec"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>

                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:214</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>According to rfc6749 it is recommended (but not required) that the auth
server exposes the access_token&#39;s life time in seconds.
This is a fallback value for the case this value is not exposed.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="issuer"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            issuer</b>
                            <a href="#issuer"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>&#x27;&#x27;</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:50</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>The issuer&#39;s uri.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="jwks"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            jwks</b>
                            <a href="#jwks"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>null</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:146</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>JSON Web Key Set (<a href="https://tools.ietf.org/html/rfc7517">https://tools.ietf.org/html/rfc7517</a>)
with keys used to validate received id_tokens.
This is taken out of the disovery document. Can be set manually too.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="loginUrl"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            loginUrl</b>
                            <a href="#loginUrl"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>&#x27;&#x27;</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:22</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>The auth server&#39;s endpoint that allows to log
the user in when using implicit flow.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="logoutUrl"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            logoutUrl</b>
                            <a href="#logoutUrl"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>&#x27;&#x27;</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:55</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>The logout url.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="nonceStateSeparator"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            nonceStateSeparator</b>
                            <a href="#nonceStateSeparator"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>&#x27;;&#x27;</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:222</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>final state sent to issuer is built as follows:
state = nonce + nonceStateSeparator + additional state
Default separator is &#39;;&#39; (encoded %3B).
In rare cases, this character might be forbidden or inconvenient to use by the issuer so it can be customized.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="oidc"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            oidc</b>
                            <a href="#oidc"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>true</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:37</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Defines whether to use OpenId Connect during
implicit flow.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="openUri"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            openUri</b>
                            <a href="#openUri"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/function" target="_blank" >function</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>() &#x3D;&gt; {...}</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:265</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>This property allows you to override the method that is used to open the login url,
allowing a way for implementations to specify their own method of routing to new
urls.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="options"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            options</b>
                            <a href="#options"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>null</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:45</a></code>
</div>
                            </td>
                        </tr>


            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="postLogoutRedirectUri"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            postLogoutRedirectUri</b>
                            <a href="#postLogoutRedirectUri"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>&#x27;&#x27;</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:16</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>An optional second redirectUri where the auth server
redirects the user to after logging out.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="redirectUri"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            redirectUri</b>
                            <a href="#redirectUri"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>&#x27;&#x27;</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:10</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>The client&#39;s redirectUri as registered with the auth server</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="requestAccessToken"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            requestAccessToken</b>
                            <a href="#requestAccessToken"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>true</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:43</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Defines whether to request an access token during
implicit flow.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="requireHttps"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            requireHttps</b>
                            <a href="#requireHttps"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>    <code>boolean | &quot;remoteOnly&quot;</code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>&#x27;remoteOnly&#x27;</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:133</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Defines whether https is required.
The default value is remoteOnly which only allows
http for localhost, while every other domains need
to be used with https.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="resource"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            resource</b>
                            <a href="#resource"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>&#x27;&#x27;</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:29</a></code>
</div>
                            </td>
                        </tr>


            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="responseType"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            responseType</b>
                            <a href="#responseType"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>&#x27;&#x27;</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:82</a></code>
</div>
                            </td>
                        </tr>


            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="revocationEndpoint"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            revocationEndpoint</b>
                            <a href="#revocationEndpoint"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>null</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:70</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Url of the revocation endpoint as defined by OpenId Connect and OAuth 2.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="rngUrl"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            rngUrl</b>
                            <a href="#rngUrl"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>&#x27;&#x27;</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:31</a></code>
</div>
                            </td>
                        </tr>


            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="scope"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            scope</b>
                            <a href="#scope"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>&#x27;openid profile&#x27;</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:27</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>The requested scopes</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="sessionCheckIFrameName"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            sessionCheckIFrameName</b>
                            <a href="#sessionCheckIFrameName"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>&#x27;angular-oauth-oidc-check-session-iframe&#x27;</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:184</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Name of the iframe to use for session checks</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="sessionCheckIFrameUrl"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            sessionCheckIFrameUrl</b>
                            <a href="#sessionCheckIFrameUrl"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>null</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:179</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Url for the iframe used for session checks</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="sessionCheckIntervall"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            sessionCheckIntervall</b>
                            <a href="#sessionCheckIntervall"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>3 * 1000</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:174</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Interval in msec for checking the session
according to <a href="http://openid.net/specs/openid-connect-session-1_0.html#ChangeNotification">http://openid.net/specs/openid-connect-session-1_0.html#ChangeNotification</a></p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="sessionChecksEnabled"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            sessionChecksEnabled</b>
                            <a href="#sessionChecksEnabled"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>false</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:168</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>If true, the lib will try to check whether the user
is still logged in on a regular basis as described
in <a href="http://openid.net/specs/openid-connect-session-1_0.html#ChangeNotification">http://openid.net/specs/openid-connect-session-1_0.html#ChangeNotification</a></p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="showDebugInformation"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            showDebugInformation</b>
                            <a href="#showDebugInformation"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>false</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:90</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Defines whether additional debug information should
be shown at the console. Note that in certain browsers
the verbosity of the console needs to be explicitly set
to include Debug level messages.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="silentRefreshIFrameName"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            silentRefreshIFrameName</b>
                            <a href="#silentRefreshIFrameName"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>&#x27;angular-oauth-oidc-silent-refresh-iframe&#x27;</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:154</a></code>
</div>
                            </td>
                        </tr>


            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="silentRefreshMessagePrefix"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            silentRefreshMessagePrefix</b>
                            <a href="#silentRefreshMessagePrefix"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>&#x27;&#x27;</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:97</a></code>
</div>
                            </td>
                        </tr>


            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="silentRefreshRedirectUri"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            silentRefreshRedirectUri</b>
                            <a href="#silentRefreshRedirectUri"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>&#x27;&#x27;</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:95</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>The redirect uri used when doing silent refresh.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="silentRefreshShowIFrame"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            silentRefreshShowIFrame</b>
                            <a href="#silentRefreshShowIFrame"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>false</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:103</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Set this to true to display the iframe used for
silent refresh for debugging.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="silentRefreshTimeout"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            silentRefreshTimeout</b>
                            <a href="#silentRefreshTimeout"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>1000 * 20</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:115</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Timeout for silent refresh.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="skipIssuerCheck"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            skipIssuerCheck</b>
                            <a href="#skipIssuerCheck"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>false</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:207</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Defined whether to skip the validation of the issuer in the discovery document.
Normally, the discovey document&#39;s url starts with the url of the issuer.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="skipSubjectCheck"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            skipSubjectCheck</b>
                            <a href="#skipSubjectCheck"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>false</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:199</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Defines wether to check the subject of a refreshed token after silent refresh.
Normally, it should be the same as before.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="strictDiscoveryDocumentValidation"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            strictDiscoveryDocumentValidation</b>
                            <a href="#strictDiscoveryDocumentValidation"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>true</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:139</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Defines whether every url provided by the discovery
document has to start with the issuer&#39;s url.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="timeoutFactor"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            timeoutFactor</b>
                            <a href="#timeoutFactor"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>0.75</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:161</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Defines when the token_timeout event should be raised.
If you set this to the default value 0.75, the event
is triggered after 75% of the token&#39;s life time.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="tokenEndpoint"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            tokenEndpoint</b>
                            <a href="#tokenEndpoint"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>null</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:65</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Url of the token endpoint as defined by OpenId Connect and OAuth 2.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="useHttpBasicAuth"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            useHttpBasicAuth</b>
                            <a href="#useHttpBasicAuth"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>false</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:227</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Set this to true to use HTTP BASIC auth for AJAX calls</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="useIdTokenHintForSilentRefresh"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            useIdTokenHintForSilentRefresh</b>
                            <a href="#useIdTokenHintForSilentRefresh"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>false</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:201</a></code>
</div>
                            </td>
                        </tr>


            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="userinfoEndpoint"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            userinfoEndpoint</b>
                            <a href="#userinfoEndpoint"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>null</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:80</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Url of the userinfo endpoint as defined by OpenId Connect.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="useSilentRefresh"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            useSilentRefresh</b>
                            <a href="#useSilentRefresh"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:245</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Set this to true if you want to use silent refresh together with
code flow. As silent refresh is the only option for refreshing
with implicit flow, you don&#39;t need to explicitly turn it on in
this case.</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="waitForTokenInMsec"></a>
                        <span class="name">
                            <b>
                                <span class="modifier">Public</span>
                                <span class="modifier">Optional</span>
                            waitForTokenInMsec</b>
                            <a href="#waitForTokenInMsec"><span class="icon ion-ios-link"></span></a>
                        </span>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>

                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <i>Default value : </i><code>0</code>
                        </td>
                    </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Inherited from         <code><a href="../classes/AuthConfig.html" target="_self" >AuthConfig</a></code>
</div>
                                </td>
                            </tr>
                        <tr>
                            <td class="col-md-4">
                                    <div class="io-line">Defined in         <code><a href="../classes/AuthConfig.html#source" target="_self" >AuthConfig:237</a></code>
</div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>The interceptors waits this time span if there is no token</p>
</div>
                    </td>
                </tr>

            </tbody>
        </table>
</section>

    </div>


    <div class="tab-pane fade  tab-source-code" id="c-source">
        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Injectable, NgZone, Optional, OnDestroy, Inject } from &#x27;@angular/core&#x27;;
import {
  HttpClient,
  HttpHeaders,
  HttpParams,
  HttpErrorResponse
} from &#x27;@angular/common/http&#x27;;
import {
  Observable,
  Subject,
  Subscription,
  of,
  race,
  from,
  combineLatest,
  throwError
} from &#x27;rxjs&#x27;;
import {
  filter,
  delay,
  first,
  tap,
  map,
  switchMap,
  debounceTime,
  catchError
} from &#x27;rxjs/operators&#x27;;
import { DOCUMENT } from &#x27;@angular/common&#x27;;

import {
  ValidationHandler,
  ValidationParams
} from &#x27;./token-validation/validation-handler&#x27;;
import { UrlHelperService } from &#x27;./url-helper.service&#x27;;
import {
  OAuthEvent,
  OAuthInfoEvent,
  OAuthErrorEvent,
  OAuthSuccessEvent
} from &#x27;./events&#x27;;
import {
  OAuthLogger,
  OAuthStorage,
  LoginOptions,
  ParsedIdToken,
  OidcDiscoveryDoc,
  TokenResponse,
  UserInfo
} from &#x27;./types&#x27;;
import { b64DecodeUnicode, base64UrlEncode } from &#x27;./base64-helper&#x27;;
import { AuthConfig } from &#x27;./auth.config&#x27;;
import { WebHttpUrlEncodingCodec } from &#x27;./encoder&#x27;;
import { HashHandler } from &#x27;./token-validation/hash-handler&#x27;;

/**
 * Service for logging in and logging out with
 * OIDC and OAuth2. Supports implicit flow and
 * password flow.
 */
@Injectable()
export class OAuthService extends AuthConfig implements OnDestroy {
  // Extending AuthConfig ist just for LEGACY reasons
  // to not break existing code.

  /**
   * The ValidationHandler used to validate received
   * id_tokens.
   */
  public tokenValidationHandler: ValidationHandler;

  /**
   * @internal
   * Deprecated:  use property events instead
   */
  public discoveryDocumentLoaded &#x3D; false;

  /**
   * @internal
   * Deprecated:  use property events instead
   */
  public discoveryDocumentLoaded$: Observable&lt;OidcDiscoveryDoc&gt;;

  /**
   * Informs about events, like token_received or token_expires.
   * See the string enum EventType for a full list of event types.
   */
  public events: Observable&lt;OAuthEvent&gt;;

  /**
   * The received (passed around) state, when logging
   * in with implicit flow.
   */
  public state? &#x3D; &#x27;&#x27;;

  protected eventsSubject: Subject&lt;OAuthEvent&gt; &#x3D; new Subject&lt;OAuthEvent&gt;();
  protected discoveryDocumentLoadedSubject: Subject&lt;
    OidcDiscoveryDoc
  &gt; &#x3D; new Subject&lt;OidcDiscoveryDoc&gt;();
  protected silentRefreshPostMessageEventListener: EventListener;
  protected grantTypesSupported: Array&lt;string&gt; &#x3D; [];
  protected _storage: OAuthStorage;
  protected accessTokenTimeoutSubscription: Subscription;
  protected idTokenTimeoutSubscription: Subscription;
  protected tokenReceivedSubscription: Subscription;
  protected sessionCheckEventListener: EventListener;
  protected jwksUri: string;
  protected sessionCheckTimer: any;
  protected silentRefreshSubject: string;
  protected inImplicitFlow &#x3D; false;

  protected saveNoncesInLocalStorage &#x3D; false;
  private document: Document;

  constructor(
    protected ngZone: NgZone,
    protected http: HttpClient,
    @Optional() storage: OAuthStorage,
    @Optional() tokenValidationHandler: ValidationHandler,
    @Optional() protected config: AuthConfig,
    protected urlHelper: UrlHelperService,
    protected logger: OAuthLogger,
    @Optional() protected crypto: HashHandler,
    @Inject(DOCUMENT) document: any
  ) {
    super();

    this.debug(&#x27;angular-oauth2-oidc v8-beta&#x27;);

    // See https://github.com/manfredsteyer/angular-oauth2-oidc/issues/773 for why this is needed
    this.document &#x3D; document;

    this.discoveryDocumentLoaded$ &#x3D; this.discoveryDocumentLoadedSubject.asObservable();
    this.events &#x3D; this.eventsSubject.asObservable();

    if (tokenValidationHandler) {
      this.tokenValidationHandler &#x3D; tokenValidationHandler;
    }

    if (config) {
      this.configure(config);
    }

    try {
      if (storage) {
        this.setStorage(storage);
      } else if (typeof sessionStorage !&#x3D;&#x3D; &#x27;undefined&#x27;) {
        this.setStorage(sessionStorage);
      }
    } catch (e) {
      console.error(
        &#x27;No OAuthStorage provided and cannot access default (sessionStorage).&#x27; +
          &#x27;Consider providing a custom OAuthStorage implementation in your module.&#x27;,
        e
      );
    }

    // in IE, sessionStorage does not always survive a redirect
    if (
      typeof window !&#x3D;&#x3D; &#x27;undefined&#x27; &amp;&amp;
      typeof window[&#x27;localStorage&#x27;] !&#x3D;&#x3D; &#x27;undefined&#x27;
    ) {
      const ua &#x3D; window?.navigator?.userAgent;
      const msie &#x3D; ua?.includes(&#x27;MSIE &#x27;) || ua?.includes(&#x27;Trident&#x27;);

      if (msie) {
        this.saveNoncesInLocalStorage &#x3D; true;
      }
    }

    this.setupRefreshTimer();
  }

  /**
   * Use this method to configure the service
   * @param config the configuration
   */
  public configure(config: AuthConfig): void {
    // For the sake of downward compatibility with
    // original configuration API
    Object.assign(this, new AuthConfig(), config);

    this.config &#x3D; Object.assign({} as AuthConfig, new AuthConfig(), config);

    if (this.sessionChecksEnabled) {
      this.setupSessionCheck();
    }

    this.configChanged();
  }

  protected configChanged(): void {
    this.setupRefreshTimer();
  }

  public restartSessionChecksIfStillLoggedIn(): void {
    if (this.hasValidIdToken()) {
      this.initSessionCheck();
    }
  }

  protected restartRefreshTimerIfStillLoggedIn(): void {
    this.setupExpirationTimers();
  }

  protected setupSessionCheck(): void {
    this.events.pipe(filter(e &#x3D;&gt; e.type &#x3D;&#x3D;&#x3D; &#x27;token_received&#x27;)).subscribe(e &#x3D;&gt; {
      this.initSessionCheck();
    });
  }

  /**
   * Will setup up silent refreshing for when the token is
   * about to expire. When the user is logged out via this.logOut method, the
   * silent refreshing will pause and not refresh the tokens until the user is
   * logged back in via receiving a new token.
   * @param params Additional parameter to pass
   * @param listenTo Setup automatic refresh of a specific token type
   */
  public setupAutomaticSilentRefresh(
    params: object &#x3D; {},
    listenTo?: &#x27;access_token&#x27; | &#x27;id_token&#x27; | &#x27;any&#x27;,
    noPrompt &#x3D; true
  ): void {
    let shouldRunSilentRefresh &#x3D; true;
    this.events
      .pipe(
        tap(e &#x3D;&gt; {
          if (e.type &#x3D;&#x3D;&#x3D; &#x27;token_received&#x27;) {
            shouldRunSilentRefresh &#x3D; true;
          } else if (e.type &#x3D;&#x3D;&#x3D; &#x27;logout&#x27;) {
            shouldRunSilentRefresh &#x3D; false;
          }
        }),
        filter(e &#x3D;&gt; e.type &#x3D;&#x3D;&#x3D; &#x27;token_expires&#x27;),
        debounceTime(1000)
      )
      .subscribe(e &#x3D;&gt; {
        const event &#x3D; e as OAuthInfoEvent;
        if (
          (listenTo &#x3D;&#x3D; null || listenTo &#x3D;&#x3D;&#x3D; &#x27;any&#x27; || event.info &#x3D;&#x3D;&#x3D; listenTo) &amp;&amp;
          shouldRunSilentRefresh
        ) {
          // this.silentRefresh(params, noPrompt).catch(_ &#x3D;&gt; {
          this.refreshInternal(params, noPrompt).catch(_ &#x3D;&gt; {
            this.debug(&#x27;Automatic silent refresh did not work&#x27;);
          });
        }
      });

    this.restartRefreshTimerIfStillLoggedIn();
  }

  protected refreshInternal(
    params,
    noPrompt
  ): Promise&lt;TokenResponse | OAuthEvent&gt; {
    if (!this.useSilentRefresh &amp;&amp; this.responseType &#x3D;&#x3D;&#x3D; &#x27;code&#x27;) {
      return this.refreshToken();
    } else {
      return this.silentRefresh(params, noPrompt);
    }
  }

  /**
   * Convenience method that first calls &#x60;loadDiscoveryDocument(...)&#x60; and
   * directly chains using the &#x60;then(...)&#x60; part of the promise to call
   * the &#x60;tryLogin(...)&#x60; method.
   *
   * @param options LoginOptions to pass through to &#x60;tryLogin(...)&#x60;
   */
  public loadDiscoveryDocumentAndTryLogin(
    options: LoginOptions &#x3D; null
  ): Promise&lt;boolean&gt; {
    return this.loadDiscoveryDocument().then(doc &#x3D;&gt; {
      return this.tryLogin(options);
    });
  }

  /**
   * Convenience method that first calls &#x60;loadDiscoveryDocumentAndTryLogin(...)&#x60;
   * and if then chains to &#x60;initLoginFlow()&#x60;, but only if there is no valid
   * IdToken or no valid AccessToken.
   *
   * @param options LoginOptions to pass through to &#x60;tryLogin(...)&#x60;
   */
  public loadDiscoveryDocumentAndLogin(
    options: LoginOptions &amp; { state?: string } &#x3D; null
  ): Promise&lt;boolean&gt; {
    options &#x3D; options || {};
    return this.loadDiscoveryDocumentAndTryLogin(options).then(_ &#x3D;&gt; {
      if (!this.hasValidIdToken() || !this.hasValidAccessToken()) {
        const state &#x3D; typeof options.state &#x3D;&#x3D;&#x3D; &#x27;string&#x27; ? options.state : &#x27;&#x27;;
        this.initLoginFlow(state);
        return false;
      } else {
        return true;
      }
    });
  }

  protected debug(...args): void {
    if (this.showDebugInformation) {
      this.logger.debug.apply(this.logger, args);
    }
  }

  protected validateUrlFromDiscoveryDocument(url: string): string[] {
    const errors: string[] &#x3D; [];
    const httpsCheck &#x3D; this.validateUrlForHttps(url);
    const issuerCheck &#x3D; this.validateUrlAgainstIssuer(url);

    if (!httpsCheck) {
      errors.push(
        &#x27;https for all urls required. Also for urls received by discovery.&#x27;
      );
    }

    if (!issuerCheck) {
      errors.push(
        &#x27;Every url in discovery document has to start with the issuer url.&#x27; +
          &#x27;Also see property strictDiscoveryDocumentValidation.&#x27;
      );
    }

    return errors;
  }

  protected validateUrlForHttps(url: string): boolean {
    if (!url) {
      return true;
    }

    const lcUrl &#x3D; url.toLowerCase();

    if (this.requireHttps &#x3D;&#x3D;&#x3D; false) {
      return true;
    }

    if (
      (lcUrl.match(/^http:\/\/localhost($|[:\/])/) ||
        lcUrl.match(/^http:\/\/localhost($|[:\/])/)) &amp;&amp;
      this.requireHttps &#x3D;&#x3D;&#x3D; &#x27;remoteOnly&#x27;
    ) {
      return true;
    }

    return lcUrl.startsWith(&#x27;https://&#x27;);
  }

  protected assertUrlNotNullAndCorrectProtocol(
    url: string | undefined,
    description: string
  ) {
    if (!url) {
      throw new Error(&#x60;&#x27;${description}&#x27; should not be null&#x60;);
    }
    if (!this.validateUrlForHttps(url)) {
      throw new Error(
        &#x60;&#x27;${description}&#x27; must use HTTPS (with TLS), or config value for property &#x27;requireHttps&#x27; must be set to &#x27;false&#x27; and allow HTTP (without TLS).&#x60;
      );
    }
  }

  protected validateUrlAgainstIssuer(url: string) {
    if (!this.strictDiscoveryDocumentValidation) {
      return true;
    }
    if (!url) {
      return true;
    }
    return url.toLowerCase().startsWith(this.issuer.toLowerCase());
  }

  protected setupRefreshTimer(): void {
    if (typeof window &#x3D;&#x3D;&#x3D; &#x27;undefined&#x27;) {
      this.debug(&#x27;timer not supported on this plattform&#x27;);
      return;
    }

    if (this.hasValidIdToken() || this.hasValidAccessToken()) {
      this.clearAccessTokenTimer();
      this.clearIdTokenTimer();
      this.setupExpirationTimers();
    }

    if (this.tokenReceivedSubscription)
      this.tokenReceivedSubscription.unsubscribe();

    this.tokenReceivedSubscription &#x3D; this.events
      .pipe(filter(e &#x3D;&gt; e.type &#x3D;&#x3D;&#x3D; &#x27;token_received&#x27;))
      .subscribe(_ &#x3D;&gt; {
        this.clearAccessTokenTimer();
        this.clearIdTokenTimer();
        this.setupExpirationTimers();
      });
  }

  protected setupExpirationTimers(): void {
    if (this.hasValidAccessToken()) {
      this.setupAccessTokenTimer();
    }

    if (this.hasValidIdToken()) {
      this.setupIdTokenTimer();
    }
  }

  protected setupAccessTokenTimer(): void {
    const expiration &#x3D; this.getAccessTokenExpiration();
    const storedAt &#x3D; this.getAccessTokenStoredAt();
    const timeout &#x3D; this.calcTimeout(storedAt, expiration);

    this.ngZone.runOutsideAngular(() &#x3D;&gt; {
      this.accessTokenTimeoutSubscription &#x3D; of(
        new OAuthInfoEvent(&#x27;token_expires&#x27;, &#x27;access_token&#x27;)
      )
        .pipe(delay(timeout))
        .subscribe(e &#x3D;&gt; {
          this.ngZone.run(() &#x3D;&gt; {
            this.eventsSubject.next(e);
          });
        });
    });
  }

  protected setupIdTokenTimer(): void {
    const expiration &#x3D; this.getIdTokenExpiration();
    const storedAt &#x3D; this.getIdTokenStoredAt();
    const timeout &#x3D; this.calcTimeout(storedAt, expiration);

    this.ngZone.runOutsideAngular(() &#x3D;&gt; {
      this.idTokenTimeoutSubscription &#x3D; of(
        new OAuthInfoEvent(&#x27;token_expires&#x27;, &#x27;id_token&#x27;)
      )
        .pipe(delay(timeout))
        .subscribe(e &#x3D;&gt; {
          this.ngZone.run(() &#x3D;&gt; {
            this.eventsSubject.next(e);
          });
        });
    });
  }

  /**
   * Stops timers for automatic refresh.
   * To restart it, call setupAutomaticSilentRefresh again.
   */
  public stopAutomaticRefresh() {
    this.clearAccessTokenTimer();
    this.clearIdTokenTimer();
  }

  protected clearAccessTokenTimer(): void {
    if (this.accessTokenTimeoutSubscription) {
      this.accessTokenTimeoutSubscription.unsubscribe();
    }
  }

  protected clearIdTokenTimer(): void {
    if (this.idTokenTimeoutSubscription) {
      this.idTokenTimeoutSubscription.unsubscribe();
    }
  }

  protected calcTimeout(storedAt: number, expiration: number): number {
    const now &#x3D; Date.now();
    const delta &#x3D;
      (expiration - storedAt) * this.timeoutFactor - (now - storedAt);
    return Math.max(0, delta);
  }

  /**
   * DEPRECATED. Use a provider for OAuthStorage instead:
   *
   * { provide: OAuthStorage, useFactory: oAuthStorageFactory }
   * export function oAuthStorageFactory(): OAuthStorage { return localStorage; }
   * Sets a custom storage used to store the received
   * tokens on client side. By default, the browser&#x27;s
   * sessionStorage is used.
   * @ignore
   *
   * @param storage
   */
  public setStorage(storage: OAuthStorage): void {
    this._storage &#x3D; storage;
    this.configChanged();
  }

  /**
   * Loads the discovery document to configure most
   * properties of this service. The url of the discovery
   * document is infered from the issuer&#x27;s url according
   * to the OpenId Connect spec. To use another url you
   * can pass it to to optional parameter fullUrl.
   *
   * @param fullUrl
   */
  public loadDiscoveryDocument(
    fullUrl: string &#x3D; null
  ): Promise&lt;OAuthSuccessEvent&gt; {
    return new Promise((resolve, reject) &#x3D;&gt; {
      if (!fullUrl) {
        fullUrl &#x3D; this.issuer || &#x27;&#x27;;
        if (!fullUrl.endsWith(&#x27;/&#x27;)) {
          fullUrl +&#x3D; &#x27;/&#x27;;
        }
        fullUrl +&#x3D; &#x27;.well-known/openid-configuration&#x27;;
      }

      if (!this.validateUrlForHttps(fullUrl)) {
        reject(
          &quot;issuer  must use HTTPS (with TLS), or config value for property &#x27;requireHttps&#x27; must be set to &#x27;false&#x27; and allow HTTP (without TLS).&quot;
        );
        return;
      }

      this.http.get&lt;OidcDiscoveryDoc&gt;(fullUrl).subscribe(
        doc &#x3D;&gt; {
          if (!this.validateDiscoveryDocument(doc)) {
            this.eventsSubject.next(
              new OAuthErrorEvent(&#x27;discovery_document_validation_error&#x27;, null)
            );
            reject(&#x27;discovery_document_validation_error&#x27;);
            return;
          }

          this.loginUrl &#x3D; doc.authorization_endpoint;
          this.logoutUrl &#x3D; doc.end_session_endpoint || this.logoutUrl;
          this.grantTypesSupported &#x3D; doc.grant_types_supported;
          this.issuer &#x3D; doc.issuer;
          this.tokenEndpoint &#x3D; doc.token_endpoint;
          this.userinfoEndpoint &#x3D;
            doc.userinfo_endpoint || this.userinfoEndpoint;
          this.jwksUri &#x3D; doc.jwks_uri;
          this.sessionCheckIFrameUrl &#x3D;
            doc.check_session_iframe || this.sessionCheckIFrameUrl;

          this.discoveryDocumentLoaded &#x3D; true;
          this.discoveryDocumentLoadedSubject.next(doc);
          this.revocationEndpoint &#x3D; doc.revocation_endpoint;

          if (this.sessionChecksEnabled) {
            this.restartSessionChecksIfStillLoggedIn();
          }

          this.loadJwks()
            .then(jwks &#x3D;&gt; {
              const result: object &#x3D; {
                discoveryDocument: doc,
                jwks: jwks
              };

              const event &#x3D; new OAuthSuccessEvent(
                &#x27;discovery_document_loaded&#x27;,
                result
              );
              this.eventsSubject.next(event);
              resolve(event);
              return;
            })
            .catch(err &#x3D;&gt; {
              this.eventsSubject.next(
                new OAuthErrorEvent(&#x27;discovery_document_load_error&#x27;, err)
              );
              reject(err);
              return;
            });
        },
        err &#x3D;&gt; {
          this.logger.error(&#x27;error loading discovery document&#x27;, err);
          this.eventsSubject.next(
            new OAuthErrorEvent(&#x27;discovery_document_load_error&#x27;, err)
          );
          reject(err);
        }
      );
    });
  }

  protected loadJwks(): Promise&lt;object&gt; {
    return new Promise&lt;object&gt;((resolve, reject) &#x3D;&gt; {
      if (this.jwksUri) {
        this.http.get(this.jwksUri).subscribe(
          jwks &#x3D;&gt; {
            this.jwks &#x3D; jwks;
            this.eventsSubject.next(
              new OAuthSuccessEvent(&#x27;discovery_document_loaded&#x27;)
            );
            resolve(jwks);
          },
          err &#x3D;&gt; {
            this.logger.error(&#x27;error loading jwks&#x27;, err);
            this.eventsSubject.next(
              new OAuthErrorEvent(&#x27;jwks_load_error&#x27;, err)
            );
            reject(err);
          }
        );
      } else {
        resolve(null);
      }
    });
  }

  protected validateDiscoveryDocument(doc: OidcDiscoveryDoc): boolean {
    let errors: string[];

    if (!this.skipIssuerCheck &amp;&amp; doc.issuer !&#x3D;&#x3D; this.issuer) {
      this.logger.error(
        &#x27;invalid issuer in discovery document&#x27;,
        &#x27;expected: &#x27; + this.issuer,
        &#x27;current: &#x27; + doc.issuer
      );
      return false;
    }

    errors &#x3D; this.validateUrlFromDiscoveryDocument(doc.authorization_endpoint);
    if (errors.length &gt; 0) {
      this.logger.error(
        &#x27;error validating authorization_endpoint in discovery document&#x27;,
        errors
      );
      return false;
    }

    errors &#x3D; this.validateUrlFromDiscoveryDocument(doc.end_session_endpoint);
    if (errors.length &gt; 0) {
      this.logger.error(
        &#x27;error validating end_session_endpoint in discovery document&#x27;,
        errors
      );
      return false;
    }

    errors &#x3D; this.validateUrlFromDiscoveryDocument(doc.token_endpoint);
    if (errors.length &gt; 0) {
      this.logger.error(
        &#x27;error validating token_endpoint in discovery document&#x27;,
        errors
      );
    }

    errors &#x3D; this.validateUrlFromDiscoveryDocument(doc.revocation_endpoint);
    if (errors.length &gt; 0) {
      this.logger.error(
        &#x27;error validating revocation_endpoint in discovery document&#x27;,
        errors
      );
    }

    errors &#x3D; this.validateUrlFromDiscoveryDocument(doc.userinfo_endpoint);
    if (errors.length &gt; 0) {
      this.logger.error(
        &#x27;error validating userinfo_endpoint in discovery document&#x27;,
        errors
      );
      return false;
    }

    errors &#x3D; this.validateUrlFromDiscoveryDocument(doc.jwks_uri);
    if (errors.length &gt; 0) {
      this.logger.error(
        &#x27;error validating jwks_uri in discovery document&#x27;,
        errors
      );
      return false;
    }

    if (this.sessionChecksEnabled &amp;&amp; !doc.check_session_iframe) {
      this.logger.warn(
        &#x27;sessionChecksEnabled is activated but discovery document&#x27; +
          &#x27; does not contain a check_session_iframe field&#x27;
      );
    }

    return true;
  }

  /**
   * Uses password flow to exchange userName and password for an
   * access_token. After receiving the access_token, this method
   * uses it to query the userinfo endpoint in order to get information
   * about the user in question.
   *
   * When using this, make sure that the property oidc is set to false.
   * Otherwise stricter validations take place that make this operation
   * fail.
   *
   * @param userName
   * @param password
   * @param headers Optional additional http-headers.
   */
  public fetchTokenUsingPasswordFlowAndLoadUserProfile(
    userName: string,
    password: string,
    headers: HttpHeaders &#x3D; new HttpHeaders()
  ): Promise&lt;UserInfo&gt; {
    return this.fetchTokenUsingPasswordFlow(
      userName,
      password,
      headers
    ).then(() &#x3D;&gt; this.loadUserProfile());
  }

  /**
   * Loads the user profile by accessing the user info endpoint defined by OpenId Connect.
   *
   * When using this with OAuth2 password flow, make sure that the property oidc is set to false.
   * Otherwise stricter validations take place that make this operation fail.
   */
  public loadUserProfile(): Promise&lt;UserInfo&gt; {
    if (!this.hasValidAccessToken()) {
      throw new Error(&#x27;Can not load User Profile without access_token&#x27;);
    }
    if (!this.validateUrlForHttps(this.userinfoEndpoint)) {
      throw new Error(
        &quot;userinfoEndpoint must use HTTPS (with TLS), or config value for property &#x27;requireHttps&#x27; must be set to &#x27;false&#x27; and allow HTTP (without TLS).&quot;
      );
    }

    return new Promise((resolve, reject) &#x3D;&gt; {
      const headers &#x3D; new HttpHeaders().set(
        &#x27;Authorization&#x27;,
        &#x27;Bearer &#x27; + this.getAccessToken()
      );

      this.http
        .get&lt;UserInfo&gt;(this.userinfoEndpoint, { headers })
        .subscribe(
          info &#x3D;&gt; {
            this.debug(&#x27;userinfo received&#x27;, info);

            const existingClaims &#x3D; this.getIdentityClaims() || {};

            if (!this.skipSubjectCheck) {
              if (
                this.oidc &amp;&amp;
                (!existingClaims[&#x27;sub&#x27;] || info.sub !&#x3D;&#x3D; existingClaims[&#x27;sub&#x27;])
              ) {
                const err &#x3D;
                  &#x27;if property oidc is true, the received user-id (sub) has to be the user-id &#x27; +
                  &#x27;of the user that has logged in with oidc.\n&#x27; +
                  &#x27;if you are not using oidc but just oauth2 password flow set oidc to false&#x27;;

                reject(err);
                return;
              }
            }

            info &#x3D; Object.assign({}, existingClaims, info);

            this._storage.setItem(&#x27;id_token_claims_obj&#x27;, JSON.stringify(info));
            this.eventsSubject.next(
              new OAuthSuccessEvent(&#x27;user_profile_loaded&#x27;)
            );
            resolve(info);
          },
          err &#x3D;&gt; {
            this.logger.error(&#x27;error loading user info&#x27;, err);
            this.eventsSubject.next(
              new OAuthErrorEvent(&#x27;user_profile_load_error&#x27;, err)
            );
            reject(err);
          }
        );
    });
  }

  /**
   * Uses password flow to exchange userName and password for an access_token.
   * @param userName
   * @param password
   * @param headers Optional additional http-headers.
   */
  public fetchTokenUsingPasswordFlow(
    userName: string,
    password: string,
    headers: HttpHeaders &#x3D; new HttpHeaders()
  ): Promise&lt;TokenResponse&gt; {
    this.assertUrlNotNullAndCorrectProtocol(
      this.tokenEndpoint,
      &#x27;tokenEndpoint&#x27;
    );

    return new Promise((resolve, reject) &#x3D;&gt; {
      /**
       * A &#x60;HttpParameterCodec&#x60; that uses &#x60;encodeURIComponent&#x60; and &#x60;decodeURIComponent&#x60; to
       * serialize and parse URL parameter keys and values.
       *
       * @stable
       */
      let params &#x3D; new HttpParams({ encoder: new WebHttpUrlEncodingCodec() })
        .set(&#x27;grant_type&#x27;, &#x27;password&#x27;)
        .set(&#x27;scope&#x27;, this.scope)
        .set(&#x27;username&#x27;, userName)
        .set(&#x27;password&#x27;, password);

      if (this.useHttpBasicAuth) {
        const header &#x3D; btoa(&#x60;${this.clientId}:${this.dummyClientSecret}&#x60;);
        headers &#x3D; headers.set(&#x27;Authorization&#x27;, &#x27;Basic &#x27; + header);
      }

      if (!this.useHttpBasicAuth) {
        params &#x3D; params.set(&#x27;client_id&#x27;, this.clientId);
      }

      if (!this.useHttpBasicAuth &amp;&amp; this.dummyClientSecret) {
        params &#x3D; params.set(&#x27;client_secret&#x27;, this.dummyClientSecret);
      }

      if (this.customQueryParams) {
        for (const key of Object.getOwnPropertyNames(this.customQueryParams)) {
          params &#x3D; params.set(key, this.customQueryParams[key]);
        }
      }

      headers &#x3D; headers.set(
        &#x27;Content-Type&#x27;,
        &#x27;application/x-www-form-urlencoded&#x27;
      );

      this.http
        .post&lt;TokenResponse&gt;(this.tokenEndpoint, params, { headers })
        .subscribe(
          tokenResponse &#x3D;&gt; {
            this.debug(&#x27;tokenResponse&#x27;, tokenResponse);
            this.storeAccessTokenResponse(
              tokenResponse.access_token,
              tokenResponse.refresh_token,
              tokenResponse.expires_in ||
                this.fallbackAccessTokenExpirationTimeInSec,
              tokenResponse.scope,
              this.extractRecognizedCustomParameters(tokenResponse)
            );

            this.eventsSubject.next(new OAuthSuccessEvent(&#x27;token_received&#x27;));
            resolve(tokenResponse);
          },
          err &#x3D;&gt; {
            this.logger.error(&#x27;Error performing password flow&#x27;, err);
            this.eventsSubject.next(new OAuthErrorEvent(&#x27;token_error&#x27;, err));
            reject(err);
          }
        );
    });
  }

  /**
   * Refreshes the token using a refresh_token.
   * This does not work for implicit flow, b/c
   * there is no refresh_token in this flow.
   * A solution for this is provided by the
   * method silentRefresh.
   */
  public refreshToken(): Promise&lt;TokenResponse&gt; {
    this.assertUrlNotNullAndCorrectProtocol(
      this.tokenEndpoint,
      &#x27;tokenEndpoint&#x27;
    );

    return new Promise((resolve, reject) &#x3D;&gt; {
      let params &#x3D; new HttpParams()
        .set(&#x27;grant_type&#x27;, &#x27;refresh_token&#x27;)
        .set(&#x27;scope&#x27;, this.scope)
        .set(&#x27;refresh_token&#x27;, this._storage.getItem(&#x27;refresh_token&#x27;));

      let headers &#x3D; new HttpHeaders().set(
        &#x27;Content-Type&#x27;,
        &#x27;application/x-www-form-urlencoded&#x27;
      );

      if (this.useHttpBasicAuth) {
        const header &#x3D; btoa(&#x60;${this.clientId}:${this.dummyClientSecret}&#x60;);
        headers &#x3D; headers.set(&#x27;Authorization&#x27;, &#x27;Basic &#x27; + header);
      }

      if (!this.useHttpBasicAuth) {
        params &#x3D; params.set(&#x27;client_id&#x27;, this.clientId);
      }

      if (!this.useHttpBasicAuth &amp;&amp; this.dummyClientSecret) {
        params &#x3D; params.set(&#x27;client_secret&#x27;, this.dummyClientSecret);
      }

      if (this.customQueryParams) {
        for (const key of Object.getOwnPropertyNames(this.customQueryParams)) {
          params &#x3D; params.set(key, this.customQueryParams[key]);
        }
      }

      this.http
        .post&lt;TokenResponse&gt;(this.tokenEndpoint, params, { headers })
        .pipe(
          switchMap(tokenResponse &#x3D;&gt; {
            if (tokenResponse.id_token) {
              return from(
                this.processIdToken(
                  tokenResponse.id_token,
                  tokenResponse.access_token,
                  true
                )
              ).pipe(
                tap(result &#x3D;&gt; this.storeIdToken(result)),
                map(_ &#x3D;&gt; tokenResponse)
              );
            } else {
              return of(tokenResponse);
            }
          })
        )
        .subscribe(
          tokenResponse &#x3D;&gt; {
            this.debug(&#x27;refresh tokenResponse&#x27;, tokenResponse);
            this.storeAccessTokenResponse(
              tokenResponse.access_token,
              tokenResponse.refresh_token,
              tokenResponse.expires_in ||
                this.fallbackAccessTokenExpirationTimeInSec,
              tokenResponse.scope,
              this.extractRecognizedCustomParameters(tokenResponse)
            );

            this.eventsSubject.next(new OAuthSuccessEvent(&#x27;token_received&#x27;));
            this.eventsSubject.next(new OAuthSuccessEvent(&#x27;token_refreshed&#x27;));
            resolve(tokenResponse);
          },
          err &#x3D;&gt; {
            this.logger.error(&#x27;Error refreshing token&#x27;, err);
            this.eventsSubject.next(
              new OAuthErrorEvent(&#x27;token_refresh_error&#x27;, err)
            );
            reject(err);
          }
        );
    });
  }

  protected removeSilentRefreshEventListener(): void {
    if (this.silentRefreshPostMessageEventListener) {
      window.removeEventListener(
        &#x27;message&#x27;,
        this.silentRefreshPostMessageEventListener
      );
      this.silentRefreshPostMessageEventListener &#x3D; null;
    }
  }

  protected setupSilentRefreshEventListener(): void {
    this.removeSilentRefreshEventListener();

    this.silentRefreshPostMessageEventListener &#x3D; (e: MessageEvent) &#x3D;&gt; {
      const message &#x3D; this.processMessageEventMessage(e);

      this.tryLogin({
        customHashFragment: message,
        preventClearHashAfterLogin: true,
        customRedirectUri: this.silentRefreshRedirectUri || this.redirectUri
      }).catch(err &#x3D;&gt; this.debug(&#x27;tryLogin during silent refresh failed&#x27;, err));
    };

    window.addEventListener(
      &#x27;message&#x27;,
      this.silentRefreshPostMessageEventListener
    );
  }

  /**
   * Performs a silent refresh for implicit flow.
   * Use this method to get new tokens when/before
   * the existing tokens expire.
   */
  public silentRefresh(
    params: object &#x3D; {},
    noPrompt &#x3D; true
  ): Promise&lt;OAuthEvent&gt; {
    const claims: object &#x3D; this.getIdentityClaims() || {};

    if (this.useIdTokenHintForSilentRefresh &amp;&amp; this.hasValidIdToken()) {
      params[&#x27;id_token_hint&#x27;] &#x3D; this.getIdToken();
    }

    if (!this.validateUrlForHttps(this.loginUrl)) {
      throw new Error(
        &quot;loginUrl  must use HTTPS (with TLS), or config value for property &#x27;requireHttps&#x27; must be set to &#x27;false&#x27; and allow HTTP (without TLS).&quot;
      );
    }

    if (typeof this.document &#x3D;&#x3D;&#x3D; &#x27;undefined&#x27;) {
      throw new Error(&#x27;silent refresh is not supported on this platform&#x27;);
    }

    const existingIframe &#x3D; this.document.getElementById(
      this.silentRefreshIFrameName
    );

    if (existingIframe) {
      this.document.body.removeChild(existingIframe);
    }

    this.silentRefreshSubject &#x3D; claims[&#x27;sub&#x27;];

    const iframe &#x3D; this.document.createElement(&#x27;iframe&#x27;);
    iframe.id &#x3D; this.silentRefreshIFrameName;

    this.setupSilentRefreshEventListener();

    const redirectUri &#x3D; this.silentRefreshRedirectUri || this.redirectUri;
    this.createLoginUrl(null, null, redirectUri, noPrompt, params).then(url &#x3D;&gt; {
      iframe.setAttribute(&#x27;src&#x27;, url);

      if (!this.silentRefreshShowIFrame) {
        iframe.style[&#x27;display&#x27;] &#x3D; &#x27;none&#x27;;
      }
      this.document.body.appendChild(iframe);
    });

    const errors &#x3D; this.events.pipe(
      filter(e &#x3D;&gt; e instanceof OAuthErrorEvent),
      first()
    );
    const success &#x3D; this.events.pipe(
      filter(e &#x3D;&gt; e.type &#x3D;&#x3D;&#x3D; &#x27;token_received&#x27;),
      first()
    );
    const timeout &#x3D; of(
      new OAuthErrorEvent(&#x27;silent_refresh_timeout&#x27;, null)
    ).pipe(delay(this.silentRefreshTimeout));

    return race([errors, success, timeout])
      .pipe(
        map(e &#x3D;&gt; {
          if (e instanceof OAuthErrorEvent) {
            if (e.type &#x3D;&#x3D;&#x3D; &#x27;silent_refresh_timeout&#x27;) {
              this.eventsSubject.next(e);
            } else {
              e &#x3D; new OAuthErrorEvent(&#x27;silent_refresh_error&#x27;, e);
              this.eventsSubject.next(e);
            }
            throw e;
          } else if (e.type &#x3D;&#x3D;&#x3D; &#x27;token_received&#x27;) {
            e &#x3D; new OAuthSuccessEvent(&#x27;silently_refreshed&#x27;);
            this.eventsSubject.next(e);
          }
          return e;
        })
      )
      .toPromise();
  }

  /**
   * This method exists for backwards compatibility.
   * {@link OAuthService#initLoginFlowInPopup} handles both code
   * and implicit flows.
   */
  public initImplicitFlowInPopup(options?: {
    height?: number;
    width?: number;
  }) {
    return this.initLoginFlowInPopup(options);
  }

  public initLoginFlowInPopup(options?: { height?: number; width?: number }) {
    options &#x3D; options || {};
    return this.createLoginUrl(
      null,
      null,
      this.silentRefreshRedirectUri,
      false,
      {
        display: &#x27;popup&#x27;
      }
    ).then(url &#x3D;&gt; {
      return new Promise((resolve, reject) &#x3D;&gt; {
        /**
         * Error handling section
         */
        const checkForPopupClosedInterval &#x3D; 500;
        let windowRef &#x3D; window.open(
          url,
          &#x27;_blank&#x27;,
          this.calculatePopupFeatures(options)
        );
        let checkForPopupClosedTimer: any;
        const checkForPopupClosed &#x3D; () &#x3D;&gt; {
          if (!windowRef || windowRef.closed) {
            cleanup();
            reject(new OAuthErrorEvent(&#x27;popup_closed&#x27;, {}));
          }
        };
        if (!windowRef) {
          reject(new OAuthErrorEvent(&#x27;popup_blocked&#x27;, {}));
        } else {
          checkForPopupClosedTimer &#x3D; window.setInterval(
            checkForPopupClosed,
            checkForPopupClosedInterval
          );
        }

        const cleanup &#x3D; () &#x3D;&gt; {
          window.clearInterval(checkForPopupClosedTimer);
          window.removeEventListener(&#x27;message&#x27;, listener);
          if (windowRef !&#x3D;&#x3D; null) {
            windowRef.close();
          }
          windowRef &#x3D; null;
        };

        const listener &#x3D; (e: MessageEvent) &#x3D;&gt; {
          const message &#x3D; this.processMessageEventMessage(e);

          if (message &amp;&amp; message !&#x3D;&#x3D; null) {
            this.tryLogin({
              customHashFragment: message,
              preventClearHashAfterLogin: true,
              customRedirectUri: this.silentRefreshRedirectUri
            }).then(
              () &#x3D;&gt; {
                cleanup();
                resolve();
              },
              err &#x3D;&gt; {
                cleanup();
                reject(err);
              }
            );
          } else {
            console.log(&#x27;false event firing&#x27;);
          }
        };

        window.addEventListener(&#x27;message&#x27;, listener);
      });
    });
  }

  protected calculatePopupFeatures(options: {
    height?: number;
    width?: number;
  }): string {
    // Specify an static height and width and calculate centered position

    const height &#x3D; options.height || 470;
    const width &#x3D; options.width || 500;
    const left &#x3D; window.screenLeft + (window.outerWidth - width) / 2;
    const top &#x3D; window.screenTop + (window.outerHeight - height) / 2;
    return &#x60;location&#x3D;no,toolbar&#x3D;no,width&#x3D;${width},height&#x3D;${height},top&#x3D;${top},left&#x3D;${left}&#x60;;
  }

  protected processMessageEventMessage(e: MessageEvent): string {
    let expectedPrefix &#x3D; &#x27;#&#x27;;

    if (this.silentRefreshMessagePrefix) {
      expectedPrefix +&#x3D; this.silentRefreshMessagePrefix;
    }

    if (!e || !e.data || typeof e.data !&#x3D;&#x3D; &#x27;string&#x27;) {
      return;
    }

    const prefixedMessage: string &#x3D; e.data;

    if (!prefixedMessage.startsWith(expectedPrefix)) {
      return;
    }

    return &#x27;#&#x27; + prefixedMessage.substr(expectedPrefix.length);
  }

  protected canPerformSessionCheck(): boolean {
    if (!this.sessionChecksEnabled) {
      return false;
    }
    if (!this.sessionCheckIFrameUrl) {
      console.warn(
        &#x27;sessionChecksEnabled is activated but there is no sessionCheckIFrameUrl&#x27;
      );
      return false;
    }
    const sessionState &#x3D; this.getSessionState();
    if (!sessionState) {
      console.warn(
        &#x27;sessionChecksEnabled is activated but there is no session_state&#x27;
      );
      return false;
    }
    if (typeof this.document &#x3D;&#x3D;&#x3D; &#x27;undefined&#x27;) {
      return false;
    }

    return true;
  }

  protected setupSessionCheckEventListener(): void {
    this.removeSessionCheckEventListener();

    this.sessionCheckEventListener &#x3D; (e: MessageEvent) &#x3D;&gt; {
      const origin &#x3D; e.origin.toLowerCase();
      const issuer &#x3D; this.issuer.toLowerCase();

      this.debug(&#x27;sessionCheckEventListener&#x27;);

      if (!issuer.startsWith(origin)) {
        this.debug(
          &#x27;sessionCheckEventListener&#x27;,
          &#x27;wrong origin&#x27;,
          origin,
          &#x27;expected&#x27;,
          issuer,
          &#x27;event&#x27;,
          e
        );

        return;
      }

      // only run in Angular zone if it is &#x27;changed&#x27; or &#x27;error&#x27;
      switch (e.data) {
        case &#x27;unchanged&#x27;:
          this.handleSessionUnchanged();
          break;
        case &#x27;changed&#x27;:
          this.ngZone.run(() &#x3D;&gt; {
            this.handleSessionChange();
          });
          break;
        case &#x27;error&#x27;:
          this.ngZone.run(() &#x3D;&gt; {
            this.handleSessionError();
          });
          break;
      }

      this.debug(&#x27;got info from session check inframe&#x27;, e);
    };

    // prevent Angular from refreshing the view on every message (runs in intervals)
    this.ngZone.runOutsideAngular(() &#x3D;&gt; {
      window.addEventListener(&#x27;message&#x27;, this.sessionCheckEventListener);
    });
  }

  protected handleSessionUnchanged(): void {
    this.debug(&#x27;session check&#x27;, &#x27;session unchanged&#x27;);
  }

  protected handleSessionChange(): void {
    this.eventsSubject.next(new OAuthInfoEvent(&#x27;session_changed&#x27;));
    this.stopSessionCheckTimer();

    if (!this.useSilentRefresh &amp;&amp; this.responseType &#x3D;&#x3D;&#x3D; &#x27;code&#x27;) {
      this.refreshToken()
        .then(_ &#x3D;&gt; {
          this.debug(&#x27;token refresh after session change worked&#x27;);
        })
        .catch(_ &#x3D;&gt; {
          this.debug(&#x27;token refresh did not work after session changed&#x27;);
          this.eventsSubject.next(new OAuthInfoEvent(&#x27;session_terminated&#x27;));
          this.logOut(true);
        });
    } else if (this.silentRefreshRedirectUri) {
      this.silentRefresh().catch(_ &#x3D;&gt;
        this.debug(&#x27;silent refresh failed after session changed&#x27;)
      );
      this.waitForSilentRefreshAfterSessionChange();
    } else {
      this.eventsSubject.next(new OAuthInfoEvent(&#x27;session_terminated&#x27;));
      this.logOut(true);
    }
  }

  protected waitForSilentRefreshAfterSessionChange(): void {
    this.events
      .pipe(
        filter(
          (e: OAuthEvent) &#x3D;&gt;
            e.type &#x3D;&#x3D;&#x3D; &#x27;silently_refreshed&#x27; ||
            e.type &#x3D;&#x3D;&#x3D; &#x27;silent_refresh_timeout&#x27; ||
            e.type &#x3D;&#x3D;&#x3D; &#x27;silent_refresh_error&#x27;
        ),
        first()
      )
      .subscribe(e &#x3D;&gt; {
        if (e.type !&#x3D;&#x3D; &#x27;silently_refreshed&#x27;) {
          this.debug(&#x27;silent refresh did not work after session changed&#x27;);
          this.eventsSubject.next(new OAuthInfoEvent(&#x27;session_terminated&#x27;));
          this.logOut(true);
        }
      });
  }

  protected handleSessionError(): void {
    this.stopSessionCheckTimer();
    this.eventsSubject.next(new OAuthInfoEvent(&#x27;session_error&#x27;));
  }

  protected removeSessionCheckEventListener(): void {
    if (this.sessionCheckEventListener) {
      window.removeEventListener(&#x27;message&#x27;, this.sessionCheckEventListener);
      this.sessionCheckEventListener &#x3D; null;
    }
  }

  protected initSessionCheck(): void {
    if (!this.canPerformSessionCheck()) {
      return;
    }

    const existingIframe &#x3D; this.document.getElementById(
      this.sessionCheckIFrameName
    );
    if (existingIframe) {
      this.document.body.removeChild(existingIframe);
    }

    const iframe &#x3D; this.document.createElement(&#x27;iframe&#x27;);
    iframe.id &#x3D; this.sessionCheckIFrameName;

    this.setupSessionCheckEventListener();

    const url &#x3D; this.sessionCheckIFrameUrl;
    iframe.setAttribute(&#x27;src&#x27;, url);
    iframe.style.display &#x3D; &#x27;none&#x27;;
    this.document.body.appendChild(iframe);

    this.startSessionCheckTimer();
  }

  protected startSessionCheckTimer(): void {
    this.stopSessionCheckTimer();
    this.ngZone.runOutsideAngular(() &#x3D;&gt; {
      this.sessionCheckTimer &#x3D; setInterval(
        this.checkSession.bind(this),
        this.sessionCheckIntervall
      );
    });
  }

  protected stopSessionCheckTimer(): void {
    if (this.sessionCheckTimer) {
      clearInterval(this.sessionCheckTimer);
      this.sessionCheckTimer &#x3D; null;
    }
  }

  public checkSession(): void {
    const iframe: any &#x3D; this.document.getElementById(
      this.sessionCheckIFrameName
    );

    if (!iframe) {
      this.logger.warn(
        &#x27;checkSession did not find iframe&#x27;,
        this.sessionCheckIFrameName
      );
    }

    const sessionState &#x3D; this.getSessionState();

    if (!sessionState) {
      this.stopSessionCheckTimer();
    }

    const message &#x3D; this.clientId + &#x27; &#x27; + sessionState;
    iframe.contentWindow.postMessage(message, this.issuer);
  }

  protected async createLoginUrl(
    state &#x3D; &#x27;&#x27;,
    loginHint &#x3D; &#x27;&#x27;,
    customRedirectUri &#x3D; &#x27;&#x27;,
    noPrompt &#x3D; false,
    params: object &#x3D; {}
  ): Promise&lt;string&gt; {
    const that &#x3D; this;

    let redirectUri: string;

    if (customRedirectUri) {
      redirectUri &#x3D; customRedirectUri;
    } else {
      redirectUri &#x3D; this.redirectUri;
    }

    const nonce &#x3D; await this.createAndSaveNonce();

    if (state) {
      state &#x3D;
        nonce + this.config.nonceStateSeparator + encodeURIComponent(state);
    } else {
      state &#x3D; nonce;
    }

    if (!this.requestAccessToken &amp;&amp; !this.oidc) {
      throw new Error(&#x27;Either requestAccessToken or oidc or both must be true&#x27;);
    }

    if (this.config.responseType) {
      this.responseType &#x3D; this.config.responseType;
    } else {
      if (this.oidc &amp;&amp; this.requestAccessToken) {
        this.responseType &#x3D; &#x27;id_token token&#x27;;
      } else if (this.oidc &amp;&amp; !this.requestAccessToken) {
        this.responseType &#x3D; &#x27;id_token&#x27;;
      } else {
        this.responseType &#x3D; &#x27;token&#x27;;
      }
    }

    const seperationChar &#x3D; that.loginUrl.indexOf(&#x27;?&#x27;) &gt; -1 ? &#x27;&amp;&#x27; : &#x27;?&#x27;;

    let scope &#x3D; that.scope;

    if (this.oidc &amp;&amp; !scope.match(/(^|\s)openid($|\s)/)) {
      scope &#x3D; &#x27;openid &#x27; + scope;
    }

    let url &#x3D;
      that.loginUrl +
      seperationChar +
      &#x27;response_type&#x3D;&#x27; +
      encodeURIComponent(that.responseType) +
      &#x27;&amp;client_id&#x3D;&#x27; +
      encodeURIComponent(that.clientId) +
      &#x27;&amp;state&#x3D;&#x27; +
      encodeURIComponent(state) +
      &#x27;&amp;redirect_uri&#x3D;&#x27; +
      encodeURIComponent(redirectUri) +
      &#x27;&amp;scope&#x3D;&#x27; +
      encodeURIComponent(scope);

    if (this.responseType.includes(&#x27;code&#x27;) &amp;&amp; !this.disablePKCE) {
      const [
        challenge,
        verifier
      ] &#x3D; await this.createChallangeVerifierPairForPKCE();

      if (
        this.saveNoncesInLocalStorage &amp;&amp;
        typeof window[&#x27;localStorage&#x27;] !&#x3D;&#x3D; &#x27;undefined&#x27;
      ) {
        localStorage.setItem(&#x27;PKCE_verifier&#x27;, verifier);
      } else {
        this._storage.setItem(&#x27;PKCE_verifier&#x27;, verifier);
      }

      url +&#x3D; &#x27;&amp;code_challenge&#x3D;&#x27; + challenge;
      url +&#x3D; &#x27;&amp;code_challenge_method&#x3D;S256&#x27;;
    }

    if (loginHint) {
      url +&#x3D; &#x27;&amp;login_hint&#x3D;&#x27; + encodeURIComponent(loginHint);
    }

    if (that.resource) {
      url +&#x3D; &#x27;&amp;resource&#x3D;&#x27; + encodeURIComponent(that.resource);
    }

    if (that.oidc) {
      url +&#x3D; &#x27;&amp;nonce&#x3D;&#x27; + encodeURIComponent(nonce);
    }

    if (noPrompt) {
      url +&#x3D; &#x27;&amp;prompt&#x3D;none&#x27;;
    }

    for (const key of Object.keys(params)) {
      url +&#x3D;
        &#x27;&amp;&#x27; + encodeURIComponent(key) + &#x27;&#x3D;&#x27; + encodeURIComponent(params[key]);
    }

    if (this.customQueryParams) {
      for (const key of Object.getOwnPropertyNames(this.customQueryParams)) {
        url +&#x3D;
          &#x27;&amp;&#x27; + key + &#x27;&#x3D;&#x27; + encodeURIComponent(this.customQueryParams[key]);
      }
    }

    return url;
  }

  initImplicitFlowInternal(
    additionalState &#x3D; &#x27;&#x27;,
    params: string | object &#x3D; &#x27;&#x27;
  ): void {
    if (this.inImplicitFlow) {
      return;
    }

    this.inImplicitFlow &#x3D; true;

    if (!this.validateUrlForHttps(this.loginUrl)) {
      throw new Error(
        &quot;loginUrl  must use HTTPS (with TLS), or config value for property &#x27;requireHttps&#x27; must be set to &#x27;false&#x27; and allow HTTP (without TLS).&quot;
      );
    }

    let addParams: object &#x3D; {};
    let loginHint: string &#x3D; null;

    if (typeof params &#x3D;&#x3D;&#x3D; &#x27;string&#x27;) {
      loginHint &#x3D; params;
    } else if (typeof params &#x3D;&#x3D;&#x3D; &#x27;object&#x27;) {
      addParams &#x3D; params;
    }

    this.createLoginUrl(additionalState, loginHint, null, false, addParams)
      .then(this.config.openUri)
      .catch(error &#x3D;&gt; {
        console.error(&#x27;Error in initImplicitFlow&#x27;, error);
        this.inImplicitFlow &#x3D; false;
      });
  }

  /**
   * Starts the implicit flow and redirects to user to
   * the auth servers&#x27; login url.
   *
   * @param additionalState Optional state that is passed around.
   *  You&#x27;ll find this state in the property &#x60;state&#x60; after &#x60;tryLogin&#x60; logged in the user.
   * @param params Hash with additional parameter. If it is a string, it is used for the
   *               parameter loginHint (for the sake of compatibility with former versions)
   */
  public initImplicitFlow(
    additionalState &#x3D; &#x27;&#x27;,
    params: string | object &#x3D; &#x27;&#x27;
  ): void {
    if (this.loginUrl !&#x3D;&#x3D; &#x27;&#x27;) {
      this.initImplicitFlowInternal(additionalState, params);
    } else {
      this.events
        .pipe(filter(e &#x3D;&gt; e.type &#x3D;&#x3D;&#x3D; &#x27;discovery_document_loaded&#x27;))
        .subscribe(_ &#x3D;&gt; this.initImplicitFlowInternal(additionalState, params));
    }
  }

  /**
   * Reset current implicit flow
   *
   * @description This method allows resetting the current implict flow in order to be initialized again.
   */
  public resetImplicitFlow(): void {
    this.inImplicitFlow &#x3D; false;
  }

  protected callOnTokenReceivedIfExists(options: LoginOptions): void {
    const that &#x3D; this;
    if (options.onTokenReceived) {
      const tokenParams &#x3D; {
        idClaims: that.getIdentityClaims(),
        idToken: that.getIdToken(),
        accessToken: that.getAccessToken(),
        state: that.state
      };
      options.onTokenReceived(tokenParams);
    }
  }

  protected storeAccessTokenResponse(
    accessToken: string,
    refreshToken: string,
    expiresIn: number,
    grantedScopes: String,
    customParameters?: Map&lt;string, string&gt;
  ): void {
    this._storage.setItem(&#x27;access_token&#x27;, accessToken);
    if (grantedScopes &amp;&amp; !Array.isArray(grantedScopes)) {
      this._storage.setItem(
        &#x27;granted_scopes&#x27;,
        JSON.stringify(grantedScopes.split(&#x27;+&#x27;))
      );
    } else if (grantedScopes &amp;&amp; Array.isArray(grantedScopes)) {
      this._storage.setItem(&#x27;granted_scopes&#x27;, JSON.stringify(grantedScopes));
    }

    this._storage.setItem(&#x27;access_token_stored_at&#x27;, &#x27;&#x27; + Date.now());
    if (expiresIn) {
      const expiresInMilliSeconds &#x3D; expiresIn * 1000;
      const now &#x3D; new Date();
      const expiresAt &#x3D; now.getTime() + expiresInMilliSeconds;
      this._storage.setItem(&#x27;expires_at&#x27;, &#x27;&#x27; + expiresAt);
    }

    if (refreshToken) {
      this._storage.setItem(&#x27;refresh_token&#x27;, refreshToken);
    }
    if (customParameters) {
      customParameters.forEach((value: string, key: string) &#x3D;&gt; {
        this._storage.setItem(key, value);
      });
    }
  }

  /**
   * Delegates to tryLoginImplicitFlow for the sake of competability
   * @param options Optional options.
   */
  public tryLogin(options: LoginOptions &#x3D; null): Promise&lt;boolean&gt; {
    if (this.config.responseType &#x3D;&#x3D;&#x3D; &#x27;code&#x27;) {
      return this.tryLoginCodeFlow(options).then(_ &#x3D;&gt; true);
    } else {
      return this.tryLoginImplicitFlow(options);
    }
  }

  private parseQueryString(queryString: string): object {
    if (!queryString || queryString.length &#x3D;&#x3D;&#x3D; 0) {
      return {};
    }

    if (queryString.charAt(0) &#x3D;&#x3D;&#x3D; &#x27;?&#x27;) {
      queryString &#x3D; queryString.substr(1);
    }

    return this.urlHelper.parseQueryString(queryString);
  }

  public tryLoginCodeFlow(options: LoginOptions &#x3D; null): Promise&lt;void&gt; {
    options &#x3D; options || {};

    const querySource &#x3D; options.customHashFragment
      ? options.customHashFragment.substring(1)
      : window.location.search;

    const parts &#x3D; this.getCodePartsFromUrl(querySource);

    const code &#x3D; parts[&#x27;code&#x27;];
    const state &#x3D; parts[&#x27;state&#x27;];

    const sessionState &#x3D; parts[&#x27;session_state&#x27;];

    if (!options.preventClearHashAfterLogin) {
      const href &#x3D; location.href
        .replace(/[&amp;\?]code&#x3D;[^&amp;\$]*/, &#x27;&#x27;)
        .replace(/[&amp;\?]scope&#x3D;[^&amp;\$]*/, &#x27;&#x27;)
        .replace(/[&amp;\?]state&#x3D;[^&amp;\$]*/, &#x27;&#x27;)
        .replace(/[&amp;\?]session_state&#x3D;[^&amp;\$]*/, &#x27;&#x27;);

      history.replaceState(null, window.name, href);
    }

    let [nonceInState, userState] &#x3D; this.parseState(state);
    this.state &#x3D; userState;

    if (parts[&#x27;error&#x27;]) {
      this.debug(&#x27;error trying to login&#x27;);
      this.handleLoginError({}, parts);
      const err &#x3D; new OAuthErrorEvent(&#x27;code_error&#x27;, {}, parts);
      this.eventsSubject.next(err);
      return Promise.reject(err);
    }

    if (!nonceInState) {
      return Promise.resolve();
    }

    const success &#x3D; this.validateNonce(nonceInState);
    if (!success) {
      const event &#x3D; new OAuthErrorEvent(&#x27;invalid_nonce_in_state&#x27;, null);
      this.eventsSubject.next(event);
      return Promise.reject(event);
    }

    this.storeSessionState(sessionState);

    if (code) {
      return this.getTokenFromCode(code, options).then(_ &#x3D;&gt; null);
    } else {
      return Promise.resolve();
    }
  }

  /**
   * Retrieve the returned auth code from the redirect uri that has been called.
   * If required also check hash, as we could use hash location strategy.
   */
  private getCodePartsFromUrl(queryString: string): object {
    if (!queryString || queryString.length &#x3D;&#x3D;&#x3D; 0) {
      return this.urlHelper.getHashFragmentParams();
    }

    // normalize query string
    if (queryString.charAt(0) &#x3D;&#x3D;&#x3D; &#x27;?&#x27;) {
      queryString &#x3D; queryString.substr(1);
    }

    return this.urlHelper.parseQueryString(queryString);
  }

  /**
   * Get token using an intermediate code. Works for the Authorization Code flow.
   */
  private getTokenFromCode(
    code: string,
    options: LoginOptions
  ): Promise&lt;object&gt; {
    let params &#x3D; new HttpParams()
      .set(&#x27;grant_type&#x27;, &#x27;authorization_code&#x27;)
      .set(&#x27;code&#x27;, code)
      .set(&#x27;redirect_uri&#x27;, options.customRedirectUri || this.redirectUri);

    if (!this.disablePKCE) {
      let PKCEVerifier;

      if (
        this.saveNoncesInLocalStorage &amp;&amp;
        typeof window[&#x27;localStorage&#x27;] !&#x3D;&#x3D; &#x27;undefined&#x27;
      ) {
        PKCEVerifier &#x3D; localStorage.getItem(&#x27;PKCE_verifier&#x27;);
      } else {
        PKCEVerifier &#x3D; this._storage.getItem(&#x27;PKCE_verifier&#x27;);
      }

      if (!PKCEVerifier) {
        console.warn(&#x27;No PKCE verifier found in oauth storage!&#x27;);
      } else {
        params &#x3D; params.set(&#x27;code_verifier&#x27;, PKCEVerifier);
      }
    }

    return this.fetchAndProcessToken(params);
  }

  private fetchAndProcessToken(params: HttpParams): Promise&lt;TokenResponse&gt; {
    this.assertUrlNotNullAndCorrectProtocol(
      this.tokenEndpoint,
      &#x27;tokenEndpoint&#x27;
    );
    let headers &#x3D; new HttpHeaders().set(
      &#x27;Content-Type&#x27;,
      &#x27;application/x-www-form-urlencoded&#x27;
    );

    if (this.useHttpBasicAuth) {
      const header &#x3D; btoa(&#x60;${this.clientId}:${this.dummyClientSecret}&#x60;);
      headers &#x3D; headers.set(&#x27;Authorization&#x27;, &#x27;Basic &#x27; + header);
    }

    if (!this.useHttpBasicAuth) {
      params &#x3D; params.set(&#x27;client_id&#x27;, this.clientId);
    }

    if (!this.useHttpBasicAuth &amp;&amp; this.dummyClientSecret) {
      params &#x3D; params.set(&#x27;client_secret&#x27;, this.dummyClientSecret);
    }

    return new Promise((resolve, reject) &#x3D;&gt; {
      if (this.customQueryParams) {
        for (let key of Object.getOwnPropertyNames(this.customQueryParams)) {
          params &#x3D; params.set(key, this.customQueryParams[key]);
        }
      }

      this.http
        .post&lt;TokenResponse&gt;(this.tokenEndpoint, params, { headers })
        .subscribe(
          tokenResponse &#x3D;&gt; {
            this.debug(&#x27;refresh tokenResponse&#x27;, tokenResponse);
            this.storeAccessTokenResponse(
              tokenResponse.access_token,
              tokenResponse.refresh_token,
              tokenResponse.expires_in ||
                this.fallbackAccessTokenExpirationTimeInSec,
              tokenResponse.scope,
              this.extractRecognizedCustomParameters(tokenResponse)
            );

            if (this.oidc &amp;&amp; tokenResponse.id_token) {
              this.processIdToken(
                tokenResponse.id_token,
                tokenResponse.access_token
              )
                .then(result &#x3D;&gt; {
                  this.storeIdToken(result);

                  this.eventsSubject.next(
                    new OAuthSuccessEvent(&#x27;token_received&#x27;)
                  );
                  this.eventsSubject.next(
                    new OAuthSuccessEvent(&#x27;token_refreshed&#x27;)
                  );

                  resolve(tokenResponse);
                })
                .catch(reason &#x3D;&gt; {
                  this.eventsSubject.next(
                    new OAuthErrorEvent(&#x27;token_validation_error&#x27;, reason)
                  );
                  console.error(&#x27;Error validating tokens&#x27;);
                  console.error(reason);

                  reject(reason);
                });
            } else {
              this.eventsSubject.next(new OAuthSuccessEvent(&#x27;token_received&#x27;));
              this.eventsSubject.next(new OAuthSuccessEvent(&#x27;token_refreshed&#x27;));

              resolve(tokenResponse);
            }
          },
          err &#x3D;&gt; {
            console.error(&#x27;Error getting token&#x27;, err);
            this.eventsSubject.next(
              new OAuthErrorEvent(&#x27;token_refresh_error&#x27;, err)
            );
            reject(err);
          }
        );
    });
  }

  /**
   * Checks whether there are tokens in the hash fragment
   * as a result of the implicit flow. These tokens are
   * parsed, validated and used to sign the user in to the
   * current client.
   *
   * @param options Optional options.
   */
  public tryLoginImplicitFlow(options: LoginOptions &#x3D; null): Promise&lt;boolean&gt; {
    options &#x3D; options || {};

    let parts: object;

    if (options.customHashFragment) {
      parts &#x3D; this.urlHelper.getHashFragmentParams(options.customHashFragment);
    } else {
      parts &#x3D; this.urlHelper.getHashFragmentParams();
    }

    this.debug(&#x27;parsed url&#x27;, parts);

    const state &#x3D; parts[&#x27;state&#x27;];

    let [nonceInState, userState] &#x3D; this.parseState(state);
    this.state &#x3D; userState;

    if (parts[&#x27;error&#x27;]) {
      this.debug(&#x27;error trying to login&#x27;);
      this.handleLoginError(options, parts);
      const err &#x3D; new OAuthErrorEvent(&#x27;token_error&#x27;, {}, parts);
      this.eventsSubject.next(err);
      return Promise.reject(err);
    }

    const accessToken &#x3D; parts[&#x27;access_token&#x27;];
    const idToken &#x3D; parts[&#x27;id_token&#x27;];
    const sessionState &#x3D; parts[&#x27;session_state&#x27;];
    const grantedScopes &#x3D; parts[&#x27;scope&#x27;];

    if (!this.requestAccessToken &amp;&amp; !this.oidc) {
      return Promise.reject(
        &#x27;Either requestAccessToken or oidc (or both) must be true.&#x27;
      );
    }

    if (this.requestAccessToken &amp;&amp; !accessToken) {
      return Promise.resolve(false);
    }
    if (this.requestAccessToken &amp;&amp; !options.disableOAuth2StateCheck &amp;&amp; !state) {
      return Promise.resolve(false);
    }
    if (this.oidc &amp;&amp; !idToken) {
      return Promise.resolve(false);
    }

    if (this.sessionChecksEnabled &amp;&amp; !sessionState) {
      this.logger.warn(
        &#x27;session checks (Session Status Change Notification) &#x27; +
          &#x27;were activated in the configuration but the id_token &#x27; +
          &#x27;does not contain a session_state claim&#x27;
      );
    }

    if (this.requestAccessToken &amp;&amp; !options.disableOAuth2StateCheck) {
      const success &#x3D; this.validateNonce(nonceInState);

      if (!success) {
        const event &#x3D; new OAuthErrorEvent(&#x27;invalid_nonce_in_state&#x27;, null);
        this.eventsSubject.next(event);
        return Promise.reject(event);
      }
    }

    if (this.requestAccessToken) {
      this.storeAccessTokenResponse(
        accessToken,
        null,
        parts[&#x27;expires_in&#x27;] || this.fallbackAccessTokenExpirationTimeInSec,
        grantedScopes
      );
    }

    if (!this.oidc) {
      this.eventsSubject.next(new OAuthSuccessEvent(&#x27;token_received&#x27;));
      if (this.clearHashAfterLogin &amp;&amp; !options.preventClearHashAfterLogin) {
        location.hash &#x3D; &#x27;&#x27;;
      }

      this.callOnTokenReceivedIfExists(options);
      return Promise.resolve(true);
    }

    return this.processIdToken(idToken, accessToken)
      .then(result &#x3D;&gt; {
        if (options.validationHandler) {
          return options
            .validationHandler({
              accessToken: accessToken,
              idClaims: result.idTokenClaims,
              idToken: result.idToken,
              state: state
            })
            .then(_ &#x3D;&gt; result);
        }
        return result;
      })
      .then(result &#x3D;&gt; {
        this.storeIdToken(result);
        this.storeSessionState(sessionState);
        if (this.clearHashAfterLogin &amp;&amp; !options.preventClearHashAfterLogin) {
          location.hash &#x3D; &#x27;&#x27;;
        }
        this.eventsSubject.next(new OAuthSuccessEvent(&#x27;token_received&#x27;));
        this.callOnTokenReceivedIfExists(options);
        this.inImplicitFlow &#x3D; false;
        return true;
      })
      .catch(reason &#x3D;&gt; {
        this.eventsSubject.next(
          new OAuthErrorEvent(&#x27;token_validation_error&#x27;, reason)
        );
        this.logger.error(&#x27;Error validating tokens&#x27;);
        this.logger.error(reason);
        return Promise.reject(reason);
      });
  }

  private parseState(state: string): [string, string] {
    let nonce &#x3D; state;
    let userState &#x3D; &#x27;&#x27;;

    if (state) {
      const idx &#x3D; state.indexOf(this.config.nonceStateSeparator);
      if (idx &gt; -1) {
        nonce &#x3D; state.substr(0, idx);
        userState &#x3D; state.substr(idx + this.config.nonceStateSeparator.length);
      }
    }
    return [nonce, userState];
  }

  protected validateNonce(nonceInState: string): boolean {
    let savedNonce;

    if (
      this.saveNoncesInLocalStorage &amp;&amp;
      typeof window[&#x27;localStorage&#x27;] !&#x3D;&#x3D; &#x27;undefined&#x27;
    ) {
      savedNonce &#x3D; localStorage.getItem(&#x27;nonce&#x27;);
    } else {
      savedNonce &#x3D; this._storage.getItem(&#x27;nonce&#x27;);
    }

    if (savedNonce !&#x3D;&#x3D; nonceInState) {
      const err &#x3D; &#x27;Validating access_token failed, wrong state/nonce.&#x27;;
      console.error(err, savedNonce, nonceInState);
      return false;
    }
    return true;
  }

  protected storeIdToken(idToken: ParsedIdToken): void {
    this._storage.setItem(&#x27;id_token&#x27;, idToken.idToken);
    this._storage.setItem(&#x27;id_token_claims_obj&#x27;, idToken.idTokenClaimsJson);
    this._storage.setItem(&#x27;id_token_expires_at&#x27;, &#x27;&#x27; + idToken.idTokenExpiresAt);
    this._storage.setItem(&#x27;id_token_stored_at&#x27;, &#x27;&#x27; + Date.now());
  }

  protected storeSessionState(sessionState: string): void {
    this._storage.setItem(&#x27;session_state&#x27;, sessionState);
  }

  protected getSessionState(): string {
    return this._storage.getItem(&#x27;session_state&#x27;);
  }

  protected handleLoginError(options: LoginOptions, parts: object): void {
    if (options.onLoginError) {
      options.onLoginError(parts);
    }
    if (this.clearHashAfterLogin &amp;&amp; !options.preventClearHashAfterLogin) {
      location.hash &#x3D; &#x27;&#x27;;
    }
  }

  /**
   * @ignore
   */
  public processIdToken(
    idToken: string,
    accessToken: string,
    skipNonceCheck &#x3D; false
  ): Promise&lt;ParsedIdToken&gt; {
    const tokenParts &#x3D; idToken.split(&#x27;.&#x27;);
    const headerBase64 &#x3D; this.padBase64(tokenParts[0]);
    const headerJson &#x3D; b64DecodeUnicode(headerBase64);
    const header &#x3D; JSON.parse(headerJson);
    const claimsBase64 &#x3D; this.padBase64(tokenParts[1]);
    const claimsJson &#x3D; b64DecodeUnicode(claimsBase64);
    const claims &#x3D; JSON.parse(claimsJson);

    let savedNonce;
    if (
      this.saveNoncesInLocalStorage &amp;&amp;
      typeof window[&#x27;localStorage&#x27;] !&#x3D;&#x3D; &#x27;undefined&#x27;
    ) {
      savedNonce &#x3D; localStorage.getItem(&#x27;nonce&#x27;);
    } else {
      savedNonce &#x3D; this._storage.getItem(&#x27;nonce&#x27;);
    }

    if (Array.isArray(claims.aud)) {
      if (claims.aud.every(v &#x3D;&gt; v !&#x3D;&#x3D; this.clientId)) {
        const err &#x3D; &#x27;Wrong audience: &#x27; + claims.aud.join(&#x27;,&#x27;);
        this.logger.warn(err);
        return Promise.reject(err);
      }
    } else {
      if (claims.aud !&#x3D;&#x3D; this.clientId) {
        const err &#x3D; &#x27;Wrong audience: &#x27; + claims.aud;
        this.logger.warn(err);
        return Promise.reject(err);
      }
    }

    if (!claims.sub) {
      const err &#x3D; &#x27;No sub claim in id_token&#x27;;
      this.logger.warn(err);
      return Promise.reject(err);
    }

    /* For now, we only check whether the sub against
     * silentRefreshSubject when sessionChecksEnabled is on
     * We will reconsider in a later version to do this
     * in every other case too.
     */
    if (
      this.sessionChecksEnabled &amp;&amp;
      this.silentRefreshSubject &amp;&amp;
      this.silentRefreshSubject !&#x3D;&#x3D; claims[&#x27;sub&#x27;]
    ) {
      const err &#x3D;
        &#x27;After refreshing, we got an id_token for another user (sub). &#x27; +
        &#x60;Expected sub: ${this.silentRefreshSubject}, received sub: ${claims[&#x27;sub&#x27;]}&#x60;;

      this.logger.warn(err);
      return Promise.reject(err);
    }

    if (!claims.iat) {
      const err &#x3D; &#x27;No iat claim in id_token&#x27;;
      this.logger.warn(err);
      return Promise.reject(err);
    }

    if (!this.skipIssuerCheck &amp;&amp; claims.iss !&#x3D;&#x3D; this.issuer) {
      const err &#x3D; &#x27;Wrong issuer: &#x27; + claims.iss;
      this.logger.warn(err);
      return Promise.reject(err);
    }

    if (!skipNonceCheck &amp;&amp; claims.nonce !&#x3D;&#x3D; savedNonce) {
      const err &#x3D; &#x27;Wrong nonce: &#x27; + claims.nonce;
      this.logger.warn(err);
      return Promise.reject(err);
    }
    // at_hash is not applicable to authorization code flow
    // addressing https://github.com/manfredsteyer/angular-oauth2-oidc/issues/661
    // i.e. Based on spec the at_hash check is only true for implicit code flow on Ping Federate
    // https://www.pingidentity.com/developer/en/resources/openid-connect-developers-guide.html
    if (
      this.hasOwnProperty(&#x27;responseType&#x27;) &amp;&amp;
      (this.responseType &#x3D;&#x3D;&#x3D; &#x27;code&#x27; || this.responseType &#x3D;&#x3D;&#x3D; &#x27;id_token&#x27;)
    ) {
      this.disableAtHashCheck &#x3D; true;
    }
    if (
      !this.disableAtHashCheck &amp;&amp;
      this.requestAccessToken &amp;&amp;
      !claims[&#x27;at_hash&#x27;]
    ) {
      const err &#x3D; &#x27;An at_hash is needed!&#x27;;
      this.logger.warn(err);
      return Promise.reject(err);
    }

    const now &#x3D; Date.now();
    const issuedAtMSec &#x3D; claims.iat * 1000;
    const expiresAtMSec &#x3D; claims.exp * 1000;
    const clockSkewInMSec &#x3D; (this.clockSkewInSec || 600) * 1000;

    if (
      issuedAtMSec - clockSkewInMSec &gt;&#x3D; now ||
      expiresAtMSec + clockSkewInMSec &lt;&#x3D; now
    ) {
      const err &#x3D; &#x27;Token has expired&#x27;;
      console.error(err);
      console.error({
        now: now,
        issuedAtMSec: issuedAtMSec,
        expiresAtMSec: expiresAtMSec
      });
      return Promise.reject(err);
    }

    const validationParams: ValidationParams &#x3D; {
      accessToken: accessToken,
      idToken: idToken,
      jwks: this.jwks,
      idTokenClaims: claims,
      idTokenHeader: header,
      loadKeys: () &#x3D;&gt; this.loadJwks()
    };

    if (this.disableAtHashCheck) {
      return this.checkSignature(validationParams).then(_ &#x3D;&gt; {
        const result: ParsedIdToken &#x3D; {
          idToken: idToken,
          idTokenClaims: claims,
          idTokenClaimsJson: claimsJson,
          idTokenHeader: header,
          idTokenHeaderJson: headerJson,
          idTokenExpiresAt: expiresAtMSec
        };
        return result;
      });
    }

    return this.checkAtHash(validationParams).then(atHashValid &#x3D;&gt; {
      if (!this.disableAtHashCheck &amp;&amp; this.requestAccessToken &amp;&amp; !atHashValid) {
        const err &#x3D; &#x27;Wrong at_hash&#x27;;
        this.logger.warn(err);
        return Promise.reject(err);
      }

      return this.checkSignature(validationParams).then(_ &#x3D;&gt; {
        const atHashCheckEnabled &#x3D; !this.disableAtHashCheck;
        const result: ParsedIdToken &#x3D; {
          idToken: idToken,
          idTokenClaims: claims,
          idTokenClaimsJson: claimsJson,
          idTokenHeader: header,
          idTokenHeaderJson: headerJson,
          idTokenExpiresAt: expiresAtMSec
        };
        if (atHashCheckEnabled) {
          return this.checkAtHash(validationParams).then(atHashValid &#x3D;&gt; {
            if (this.requestAccessToken &amp;&amp; !atHashValid) {
              const err &#x3D; &#x27;Wrong at_hash&#x27;;
              this.logger.warn(err);
              return Promise.reject(err);
            } else {
              return result;
            }
          });
        } else {
          return result;
        }
      });
    });
  }

  /**
   * Returns the received claims about the user.
   */
  public getIdentityClaims(): object {
    const claims &#x3D; this._storage.getItem(&#x27;id_token_claims_obj&#x27;);
    if (!claims) {
      return null;
    }
    return JSON.parse(claims);
  }

  /**
   * Returns the granted scopes from the server.
   */
  public getGrantedScopes(): object {
    const scopes &#x3D; this._storage.getItem(&#x27;granted_scopes&#x27;);
    if (!scopes) {
      return null;
    }
    return JSON.parse(scopes);
  }

  /**
   * Returns the current id_token.
   */
  public getIdToken(): string {
    return this._storage ? this._storage.getItem(&#x27;id_token&#x27;) : null;
  }

  protected padBase64(base64data): string {
    while (base64data.length % 4 !&#x3D;&#x3D; 0) {
      base64data +&#x3D; &#x27;&#x3D;&#x27;;
    }
    return base64data;
  }

  /**
   * Returns the current access_token.
   */
  public getAccessToken(): string {
    return this._storage ? this._storage.getItem(&#x27;access_token&#x27;) : null;
  }

  public getRefreshToken(): string {
    return this._storage ? this._storage.getItem(&#x27;refresh_token&#x27;) : null;
  }

  /**
   * Returns the expiration date of the access_token
   * as milliseconds since 1970.
   */
  public getAccessTokenExpiration(): number {
    if (!this._storage.getItem(&#x27;expires_at&#x27;)) {
      return null;
    }
    return parseInt(this._storage.getItem(&#x27;expires_at&#x27;), 10);
  }

  protected getAccessTokenStoredAt(): number {
    return parseInt(this._storage.getItem(&#x27;access_token_stored_at&#x27;), 10);
  }

  protected getIdTokenStoredAt(): number {
    return parseInt(this._storage.getItem(&#x27;id_token_stored_at&#x27;), 10);
  }

  /**
   * Returns the expiration date of the id_token
   * as milliseconds since 1970.
   */
  public getIdTokenExpiration(): number {
    if (!this._storage.getItem(&#x27;id_token_expires_at&#x27;)) {
      return null;
    }

    return parseInt(this._storage.getItem(&#x27;id_token_expires_at&#x27;), 10);
  }

  /**
   * Checkes, whether there is a valid access_token.
   */
  public hasValidAccessToken(): boolean {
    if (this.getAccessToken()) {
      const expiresAt &#x3D; this._storage.getItem(&#x27;expires_at&#x27;);
      const now &#x3D; new Date();
      if (expiresAt &amp;&amp; parseInt(expiresAt, 10) &lt; now.getTime()) {
        return false;
      }

      return true;
    }

    return false;
  }

  /**
   * Checks whether there is a valid id_token.
   */
  public hasValidIdToken(): boolean {
    if (this.getIdToken()) {
      const expiresAt &#x3D; this._storage.getItem(&#x27;id_token_expires_at&#x27;);
      const now &#x3D; new Date();
      if (expiresAt &amp;&amp; parseInt(expiresAt, 10) &lt; now.getTime()) {
        return false;
      }

      return true;
    }

    return false;
  }

  /**
   * Retrieve a saved custom property of the TokenReponse object. Only if predefined in authconfig.
   */
  public getCustomTokenResponseProperty(requestedProperty: string): any {
    return this._storage &amp;&amp;
      this.config.customTokenParameters &amp;&amp;
      this.config.customTokenParameters.indexOf(requestedProperty) &gt;&#x3D; 0 &amp;&amp;
      this._storage.getItem(requestedProperty) !&#x3D;&#x3D; null
      ? JSON.parse(this._storage.getItem(requestedProperty))
      : null;
  }

  /**
   * Returns the auth-header that can be used
   * to transmit the access_token to a service
   */
  public authorizationHeader(): string {
    return &#x27;Bearer &#x27; + this.getAccessToken();
  }

  /**
   * Removes all tokens and logs the user out.
   * If a logout url is configured, the user is
   * redirected to it with optional state parameter.
   * @param noRedirectToLogoutUrl
   * @param state
   */
  public logOut(): void;
  public logOut(customParameters: object): void;
  public logOut(noRedirectToLogoutUrl: boolean): void;
  public logOut(noRedirectToLogoutUrl: boolean, state: string): void;
  public logOut(customParameters: boolean | object &#x3D; {}, state &#x3D; &#x27;&#x27;): void {
    let noRedirectToLogoutUrl &#x3D; false;
    if (typeof customParameters &#x3D;&#x3D;&#x3D; &#x27;boolean&#x27;) {
      noRedirectToLogoutUrl &#x3D; customParameters;
      customParameters &#x3D; {};
    }

    const id_token &#x3D; this.getIdToken();
    this._storage.removeItem(&#x27;access_token&#x27;);
    this._storage.removeItem(&#x27;id_token&#x27;);
    this._storage.removeItem(&#x27;refresh_token&#x27;);

    if (this.saveNoncesInLocalStorage) {
      localStorage.removeItem(&#x27;nonce&#x27;);
      localStorage.removeItem(&#x27;PKCE_verifier&#x27;);
    } else {
      this._storage.removeItem(&#x27;nonce&#x27;);
      this._storage.removeItem(&#x27;PKCE_verifier&#x27;);
    }

    this._storage.removeItem(&#x27;expires_at&#x27;);
    this._storage.removeItem(&#x27;id_token_claims_obj&#x27;);
    this._storage.removeItem(&#x27;id_token_expires_at&#x27;);
    this._storage.removeItem(&#x27;id_token_stored_at&#x27;);
    this._storage.removeItem(&#x27;access_token_stored_at&#x27;);
    this._storage.removeItem(&#x27;granted_scopes&#x27;);
    this._storage.removeItem(&#x27;session_state&#x27;);
    if (this.config.customTokenParameters) {
      this.config.customTokenParameters.forEach(customParam &#x3D;&gt;
        this._storage.removeItem(customParam)
      );
    }
    this.silentRefreshSubject &#x3D; null;

    this.eventsSubject.next(new OAuthInfoEvent(&#x27;logout&#x27;));

    if (!this.logoutUrl) {
      return;
    }
    if (noRedirectToLogoutUrl) {
      return;
    }

    if (!id_token &amp;&amp; !this.postLogoutRedirectUri) {
      return;
    }

    let logoutUrl: string;

    if (!this.validateUrlForHttps(this.logoutUrl)) {
      throw new Error(
        &quot;logoutUrl  must use HTTPS (with TLS), or config value for property &#x27;requireHttps&#x27; must be set to &#x27;false&#x27; and allow HTTP (without TLS).&quot;
      );
    }

    // For backward compatibility
    if (this.logoutUrl.indexOf(&#x27;{{&#x27;) &gt; -1) {
      logoutUrl &#x3D; this.logoutUrl
        .replace(/\{\{id_token\}\}/, id_token)
        .replace(/\{\{client_id\}\}/, this.clientId);
    } else {
      let params &#x3D; new HttpParams();

      if (id_token) {
        params &#x3D; params.set(&#x27;id_token_hint&#x27;, id_token);
      }

      const postLogoutUrl &#x3D; this.postLogoutRedirectUri || this.redirectUri;
      if (postLogoutUrl) {
        params &#x3D; params.set(&#x27;post_logout_redirect_uri&#x27;, postLogoutUrl);

        if (state) {
          params &#x3D; params.set(&#x27;state&#x27;, state);
        }
      }

      for (let key in customParameters) {
        params &#x3D; params.set(key, customParameters[key]);
      }

      logoutUrl &#x3D;
        this.logoutUrl +
        (this.logoutUrl.indexOf(&#x27;?&#x27;) &gt; -1 ? &#x27;&amp;&#x27; : &#x27;?&#x27;) +
        params.toString();
    }
    this.config.openUri(logoutUrl);
  }

  /**
   * @ignore
   */
  public createAndSaveNonce(): Promise&lt;string&gt; {
    const that &#x3D; this;
    return this.createNonce().then(function(nonce: any) {
      // Use localStorage for nonce if possible
      // localStorage is the only storage who survives a
      // redirect in ALL browsers (also IE)
      // Otherwiese we&#x27;d force teams who have to support
      // IE into using localStorage for everything
      if (
        that.saveNoncesInLocalStorage &amp;&amp;
        typeof window[&#x27;localStorage&#x27;] !&#x3D;&#x3D; &#x27;undefined&#x27;
      ) {
        localStorage.setItem(&#x27;nonce&#x27;, nonce);
      } else {
        that._storage.setItem(&#x27;nonce&#x27;, nonce);
      }
      return nonce;
    });
  }

  /**
   * @ignore
   */
  public ngOnDestroy(): void {
    this.clearAccessTokenTimer();
    this.clearIdTokenTimer();

    this.removeSilentRefreshEventListener();
    const silentRefreshFrame &#x3D; this.document.getElementById(
      this.silentRefreshIFrameName
    );
    if (silentRefreshFrame) {
      silentRefreshFrame.remove();
    }

    this.stopSessionCheckTimer();
    this.removeSessionCheckEventListener();
    const sessionCheckFrame &#x3D; this.document.getElementById(
      this.sessionCheckIFrameName
    );
    if (sessionCheckFrame) {
      sessionCheckFrame.remove();
    }
  }

  protected createNonce(): Promise&lt;string&gt; {
    return new Promise(resolve &#x3D;&gt; {
      if (this.rngUrl) {
        throw new Error(
          &#x27;createNonce with rng-web-api has not been implemented so far&#x27;
        );
      }

      /*
       * This alphabet is from:
       * https://tools.ietf.org/html/rfc7636#section-4.1
       *
       * [A-Z] / [a-z] / [0-9] / &quot;-&quot; / &quot;.&quot; / &quot;_&quot; / &quot;~&quot;
       */
      const unreserved &#x3D;
        &#x27;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~&#x27;;
      let size &#x3D; 45;
      let id &#x3D; &#x27;&#x27;;

      const crypto &#x3D;
        typeof self &#x3D;&#x3D;&#x3D; &#x27;undefined&#x27; ? null : self.crypto || self[&#x27;msCrypto&#x27;];
      if (crypto) {
        let bytes &#x3D; new Uint8Array(size);
        crypto.getRandomValues(bytes);

        // Needed for IE
        if (!bytes.map) {
          (bytes as any).map &#x3D; Array.prototype.map;
        }

        bytes &#x3D; bytes.map(x &#x3D;&gt; unreserved.charCodeAt(x % unreserved.length));
        id &#x3D; String.fromCharCode.apply(null, bytes);
      } else {
        while (0 &lt; size--) {
          id +&#x3D; unreserved[(Math.random() * unreserved.length) | 0];
        }
      }

      resolve(base64UrlEncode(id));
    });
  }

  protected async checkAtHash(params: ValidationParams): Promise&lt;boolean&gt; {
    if (!this.tokenValidationHandler) {
      this.logger.warn(
        &#x27;No tokenValidationHandler configured. Cannot check at_hash.&#x27;
      );
      return true;
    }
    return this.tokenValidationHandler.validateAtHash(params);
  }

  protected checkSignature(params: ValidationParams): Promise&lt;any&gt; {
    if (!this.tokenValidationHandler) {
      this.logger.warn(
        &#x27;No tokenValidationHandler configured. Cannot check signature.&#x27;
      );
      return Promise.resolve(null);
    }
    return this.tokenValidationHandler.validateSignature(params);
  }

  /**
   * Start the implicit flow or the code flow,
   * depending on your configuration.
   */
  public initLoginFlow(additionalState &#x3D; &#x27;&#x27;, params &#x3D; {}): void {
    if (this.responseType &#x3D;&#x3D;&#x3D; &#x27;code&#x27;) {
      return this.initCodeFlow(additionalState, params);
    } else {
      return this.initImplicitFlow(additionalState, params);
    }
  }

  /**
   * Starts the authorization code flow and redirects to user to
   * the auth servers login url.
   */
  public initCodeFlow(additionalState &#x3D; &#x27;&#x27;, params &#x3D; {}): void {
    if (this.loginUrl !&#x3D;&#x3D; &#x27;&#x27;) {
      this.initCodeFlowInternal(additionalState, params);
    } else {
      this.events
        .pipe(filter(e &#x3D;&gt; e.type &#x3D;&#x3D;&#x3D; &#x27;discovery_document_loaded&#x27;))
        .subscribe(_ &#x3D;&gt; this.initCodeFlowInternal(additionalState, params));
    }
  }

  private initCodeFlowInternal(additionalState &#x3D; &#x27;&#x27;, params &#x3D; {}): void {
    if (!this.validateUrlForHttps(this.loginUrl)) {
      throw new Error(
        &quot;loginUrl  must use HTTPS (with TLS), or config value for property &#x27;requireHttps&#x27; must be set to &#x27;false&#x27; and allow HTTP (without TLS).&quot;
      );
    }

    this.createLoginUrl(additionalState, &#x27;&#x27;, null, false, params)
      .then(this.config.openUri)
      .catch(error &#x3D;&gt; {
        console.error(&#x27;Error in initAuthorizationCodeFlow&#x27;);
        console.error(error);
      });
  }

  protected async createChallangeVerifierPairForPKCE(): Promise&lt;
    [string, string]
  &gt; {
    if (!this.crypto) {
      throw new Error(
        &#x27;PKCE support for code flow needs a CryptoHander. Did you import the OAuthModule using forRoot() ?&#x27;
      );
    }

    const verifier &#x3D; await this.createNonce();
    const challengeRaw &#x3D; await this.crypto.calcHash(verifier, &#x27;sha-256&#x27;);
    const challenge &#x3D; base64UrlEncode(challengeRaw);

    return [challenge, verifier];
  }

  private extractRecognizedCustomParameters(
    tokenResponse: TokenResponse
  ): Map&lt;string, string&gt; {
    let foundParameters: Map&lt;string, string&gt; &#x3D; new Map&lt;string, string&gt;();
    if (!this.config.customTokenParameters) {
      return foundParameters;
    }
    this.config.customTokenParameters.forEach((recognizedParameter: string) &#x3D;&gt; {
      if (tokenResponse[recognizedParameter]) {
        foundParameters.set(
          recognizedParameter,
          JSON.stringify(tokenResponse[recognizedParameter])
        );
      }
    });
    return foundParameters;
  }

  /**
   * Revokes the auth token to secure the vulnarability
   * of the token issued allowing the authorization server to clean
   * up any security credentials associated with the authorization
   */
  public revokeTokenAndLogout(
    customParameters: object &#x3D; {},
    ignoreCorsIssues &#x3D; false
  ): Promise&lt;any&gt; {
    let revokeEndpoint &#x3D; this.revocationEndpoint;
    let accessToken &#x3D; this.getAccessToken();
    let refreshToken &#x3D; this.getRefreshToken();

    if (!accessToken) {
      return;
    }

    let params &#x3D; new HttpParams();

    let headers &#x3D; new HttpHeaders().set(
      &#x27;Content-Type&#x27;,
      &#x27;application/x-www-form-urlencoded&#x27;
    );

    if (this.useHttpBasicAuth) {
      const header &#x3D; btoa(&#x60;${this.clientId}:${this.dummyClientSecret}&#x60;);
      headers &#x3D; headers.set(&#x27;Authorization&#x27;, &#x27;Basic &#x27; + header);
    }

    if (!this.useHttpBasicAuth) {
      params &#x3D; params.set(&#x27;client_id&#x27;, this.clientId);
    }

    if (!this.useHttpBasicAuth &amp;&amp; this.dummyClientSecret) {
      params &#x3D; params.set(&#x27;client_secret&#x27;, this.dummyClientSecret);
    }

    if (this.customQueryParams) {
      for (const key of Object.getOwnPropertyNames(this.customQueryParams)) {
        params &#x3D; params.set(key, this.customQueryParams[key]);
      }
    }

    return new Promise((resolve, reject) &#x3D;&gt; {
      let revokeAccessToken: Observable&lt;void&gt;;
      let revokeRefreshToken: Observable&lt;void&gt;;

      if (accessToken) {
        let revokationParams &#x3D; params
          .set(&#x27;token&#x27;, accessToken)
          .set(&#x27;token_type_hint&#x27;, &#x27;access_token&#x27;);
        revokeAccessToken &#x3D; this.http.post&lt;void&gt;(
          revokeEndpoint,
          revokationParams,
          { headers }
        );
      } else {
        revokeAccessToken &#x3D; of(null);
      }

      if (refreshToken) {
        let revokationParams &#x3D; params
          .set(&#x27;token&#x27;, refreshToken)
          .set(&#x27;token_type_hint&#x27;, &#x27;refresh_token&#x27;);
        revokeRefreshToken &#x3D; this.http.post&lt;void&gt;(
          revokeEndpoint,
          revokationParams,
          { headers }
        );
      } else {
        revokeRefreshToken &#x3D; of(null);
      }

      if (ignoreCorsIssues) {
        revokeAccessToken &#x3D; revokeAccessToken.pipe(
          catchError((err: HttpErrorResponse) &#x3D;&gt; {
            if (err.status &#x3D;&#x3D;&#x3D; 0) {
              return of&lt;void&gt;(null);
            }
            return throwError(err);
          })
        );

        revokeRefreshToken &#x3D; revokeRefreshToken.pipe(
          catchError((err: HttpErrorResponse) &#x3D;&gt; {
            if (err.status &#x3D;&#x3D;&#x3D; 0) {
              return of&lt;void&gt;(null);
            }
            return throwError(err);
          })
        );
      }

      combineLatest([revokeAccessToken, revokeRefreshToken]).subscribe(
        res &#x3D;&gt; {
          this.logOut(customParameters);
          resolve(res);
          this.logger.info(&#x27;Token successfully revoked&#x27;);
        },
        err &#x3D;&gt; {
          this.logger.error(&#x27;Error revoking token&#x27;, err);
          this.eventsSubject.next(
            new OAuthErrorEvent(&#x27;token_revoke_error&#x27;, err)
          );
          reject(err);
        }
      );
    });
  }
}
</code></pre>
    </div>

</div>







                   




                   </div><div class="search-results">
    <div class="has-results">
        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
        <ul class="search-results-list"></ul>
    </div>
    <div class="no-results">
        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
    </div>
</div>
</div>
               <!-- END CONTENT -->
           </div>
       </div>

       <script>
            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
            var COMPODOC_CURRENT_PAGE_CONTEXT = 'injectable';
            var COMPODOC_CURRENT_PAGE_URL = 'OAuthService.html';
            var MAX_SEARCH_RESULTS = 15;
       </script>

       <script src="../js/libs/custom-elements.min.js"></script>
       <script src="../js/libs/lit-html.js"></script>
       <!-- Required to polyfill modern browsers as code is ES5 for IE... -->
       <script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
       <script src="../js/menu-wc.js" defer></script>

       <script src="../js/libs/bootstrap-native.js"></script>

       <script src="../js/libs/es6-shim.min.js"></script>
       <script src="../js/libs/EventDispatcher.js"></script>
       <script src="../js/libs/promise.min.js"></script>
       <script src="../js/libs/zepto.min.js"></script>

       <script src="../js/compodoc.js"></script>

       <script src="../js/tabs.js"></script>
       <script src="../js/menu.js"></script>
       <script src="../js/libs/clipboard.min.js"></script>
       <script src="../js/libs/prism.js"></script>
       <script src="../js/sourceCode.js"></script>
          <script src="../js/search/search.js"></script>
          <script src="../js/search/lunr.min.js"></script>
          <script src="../js/search/search-lunr.js"></script>
          <script src="../js/search/search_index.js"></script>
       <script src="../js/lazy-load-graphs.js"></script>


    </body>
</html>
